Skip to content

Convert SRT subtitles to VTT

Paste your SRT text or choose a .srt file and get WebVTT straight away. The commas in the timestamps become dots, the WEBVTT header is added, and you can copy the result or download it as a .vtt file.

Loading the tool…

Processed in your browser. Your file is never uploaded.

What the two formats look like

SRT and WebVTT carry the same information: a start time, an end time and some text. The difference is in the details. Here is the same cue in each.

SRT

1
00:00:01,000 --> 00:00:03,500
Welcome to the show.

WebVTT

WEBVTT

1
00:00:01.000 --> 00:00:03.500
Welcome to the show.

In the VTT version there is a header line, the milliseconds follow a dot instead of a comma, and the number above the timestamp is optional (VTT calls it a cue identifier). That is the whole conversion for plain captions, which is why it is safe to do in the browser with no server involved.

When you need VTT instead of SRT

Use VTT whenever the captions are going onto a web page. The HTML5 <track> element, which is how a plain <video> tag shows captions, accepts WebVTT and not SRT. Many video platforms and players accept either, and plenty of desktop editors and media players only know SRT, so the safe habit is to keep both: the SRT as your editable master and a VTT made from it for the web.

Why a converted file can still be rejected

  • The header is not first. A WebVTT file has to start with the letters WEBVTT on the first line (a byte order mark before it is allowed). A blank line, a comment or a stray character above it makes the whole file invalid.
  • A comma slipped through. VTT timestamps use a dot. A file that mixes the two will play the cues that happen to be right and drop the rest, or nothing at all.
  • Encoding. WebVTT is defined as UTF-8. If your SRT was saved in an older encoding, accented letters and non-Latin scripts turn into question marks or boxes. This page reads UTF-8, UTF-16 and Windows-1252 files, and the file it gives you back is UTF-8 without a byte order mark.
  • Text that looks like markup. VTT treats < and & as the start of a tag or an entity, and treats the sequence --> inside a caption as a timestamp arrow. The converter escapes those so a line like “Q&A” survives.

If the result looks wrong

The converter tells you the line number of any timestamp it cannot read and carries on with the rest, so you can fix the original and paste it again. It also warns when cues overlap or end before they start, which is the usual reason a player shows lines stacked or out of order. If the timing is simply late or early, the subtitle time shifter moves every line at once, and the subtitle line splitter breaks overlong lines. For the reverse direction use the VTT to SRT converter.

For a longer comparison of the formats see transcript file formats explained, and for the whole process of making captions from scratch see how to make VTT captions. If you only have the video, you can turn audio into a VTT file directly.

Questions

Why does my browser video player ignore my SRT file?

The HTML5 <track> element reads WebVTT, not SRT. If you point it at an .srt file the captions simply do not appear. Converting to VTT is the fix: this tool adds the WEBVTT header and changes the timestamp format, which is what the browser needs.

What exactly changes when SRT becomes VTT?

Three things. A WEBVTT line and a blank line are added at the top, the comma before the milliseconds becomes a dot, and any bare & or < in the caption text is escaped, because VTT reads those as markup. The words, the timing and the cue numbers are left alone.

Will bold, italic and underline survive?

Yes. <i>, <b> and <u> are valid in both formats, so they are passed through untouched. SRT has no positioning, so the converter adds no cue settings either.

Is my subtitle file uploaded anywhere?

No. The conversion is plain JavaScript running in this tab, and the text you paste or the file you choose never leaves it. The only thing the page reports is that the tool was used, with no text and no file name.

Do not have the captions yet?

Scriptorium turns speech in audio and video into a timed transcript and exports it as a WebVTT or an SRT file. You can try it free.