Convert WebVTT to SRT
WebVTT (Web Video Text Tracks) to SubRip Subtitle (SRT). Convert in the web app, automate with the REST API, or run it offline with the CLI.
Converting WebVTT to SRT produces the most compatible subtitle file there is, for desktop players, video editors, social platforms and translation tools that don’t accept .vtt. WebVTT can express more than SRT, so the conversion simplifies some features.
What carries over
- Cue text and millisecond timing
- Italics, bold and underline
- Line breaks within each cue
What changes
- Cue settings (
line,position,align) are dropped, so every subtitle renders at the default bottom position STYLE,REGIONandNOTEblocks are removed- CSS classes and voice tags are removed. Speaker names in
<v>tags are not shown as text - Cues are renumbered sequentially, as SRT requires
How to convert WebVTT to SRT
The same conversion engine powers all three, so a job you set up in the web app produces identical output from the API or CLI.
In the web app
- Sign in to the web app, or start a free trial.
- Upload your .vtt file and select WebVTT as the source profile.
- Select SubRip Video Subtitle Script as the target profile.
- Review the recommended settings for this conversion.
- Run the conversion and download your .srt file.
With the API
curl -X POST https://api.closedcaptionconverter.com/jobs \
-H "x-api-key: YOUR_API_KEY" \
-F "source=@input.vtt" \
-F 'config={
"job_type": "convert",
"source_profile": "WebVTT",
"target_profile": "SubRip Video Subtitle Script",
"fix_overlap": true
}'See API Getting Started for authentication and response handling.
With the CLI
ccconverter \
--source input.vtt \
--target output.srt \
--source_profile "WebVTT" \
--target_profile "SubRip Video Subtitle Script" \
--fix_overlap true \
--bom trueThe CLI runs fully offline on macOS, Windows and Linux. See the CLI docs for every flag.
Recommended settings
| Target encoding | UTF-8 is the safest choice. Some older players need a BOM. |
|---|---|
| Fix overlap | Helps when the WebVTT relied on positioning to show two cues at once. |
Format-specific options are covered in Encoding & Decoding Options and Profiles & Formats.
WebVTT to SRT questions
Their placement came from WebVTT cue settings, and SRT has no equivalent. If placement matters, keep the WebVTT, or deliver a format with positioning such as TTML.
Voice tags like <v Sam> are markup, not visible text, so they are dropped. If the speaker names need to appear in the SRT, include them in the cue text instead.
The player probably expects a byte order mark or a legacy encoding. Re-export with the BOM option enabled, or with the encoding your player expects.
Learn more about these formats
Related conversions
Convert WebVTT to SRT now
Upload your .vtt file and download SRT in seconds, or automate it with the API and CLI.