Caption conversion

Convert SRT to WebVTT

SubRip Subtitle (SRT) to WebVTT (Web Video Text Tracks). Convert in the web app, automate with the REST API, or run it offline with the CLI.

SRT and WebVTT look almost identical, but a renamed .srt file is not valid WebVTT. Converting adds the required WEBVTT header, changes the millisecond separator from a comma to a period, and writes the file in UTF-8, which is what browsers and HLS players expect.

What carries over

  • All cue text and timing, to the millisecond
  • Italics, bold and underline tags
  • Cue numbers, kept as WebVTT cue identifiers

What changes

  • A WEBVTT header is added and timestamps use . instead of ,
  • Text is re-encoded as UTF-8. Set the source encoding if your SRT uses a legacy code page
  • Non-standard <font> tags and {\an8} overrides are not valid WebVTT and should be removed or mapped

How to convert SRT to WebVTT

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

  1. Sign in to the web app, or start a free trial.
  2. Upload your .srt file and select SubRip Video Subtitle Script as the source profile.
  3. Select WebVTT as the target profile.
  4. Review the recommended settings for this conversion.
  5. Run the conversion and download your .vtt file.

With the API

POST /jobs
curl -X POST https://api.closedcaptionconverter.com/jobs \
  -H "x-api-key: YOUR_API_KEY" \
  -F "source=@input.srt" \
  -F 'config={
    "job_type": "convert",
    "source_profile": "SubRip Video Subtitle Script",
    "target_profile": "WebVTT"
  }'

See API Getting Started for authentication and response handling.

With the CLI

Command line
ccconverter \
  --source input.srt \
  --target output.vtt \
  --source_profile "SubRip Video Subtitle Script" \
  --target_profile "WebVTT"

The CLI runs fully offline on macOS, Windows and Linux. See the CLI docs for every flag.

Recommended settings

Source encodingSet it explicitly (for example Windows-1252) if accented characters look wrong.
Auto FormatOptional: re-wrap long lines for small screens.

Format-specific options are covered in Encoding & Decoding Options and Profiles & Formats.

SRT to WebVTT questions

Some lenient players accept it, but browsers and strict validators do not. The header and the timestamp separator must change, and converting is the reliable fix.

No. Both formats use millisecond timing, so times carry over exactly.

Yes. WebVTT supports cue settings for placement, and SRT has nothing to carry over. If some captions need to sit at the top of the screen, adjust them in the web app before exporting.

Free trial

Convert SRT to WebVTT now

Upload your .srt file and download WebVTT in seconds, or automate it with the API and CLI.