video tool

SRT to VTT converter

Paste SRT subtitles or open a .srt file and the WebVTT version appears beside it as you type: the WEBVTT line is added at the top, the comma before the milliseconds in every timing becomes a dot, and bold, italic and underline survive. Anything WebVTT cannot carry, such as font colour tags or {\an8} position codes, is dropped and counted so you know exactly what changed.

Loading the tool…

How it works

  1. 1

    Paste or open the SRT

    Paste into the SRT box, press Open a .srt file, or drop the file on the tool. A short sample is loaded so you can see the result first.

  2. 2

    Read the WebVTT side

    The converted text fills the WebVTT box straight away and updates as you edit the SRT. Both boxes number their lines.

  3. 3

    Check what was dropped

    A green note counts the cues converted. Any tags or codes WebVTT has no place for are listed by kind, and faulty blocks are flagged in the gutter.

  4. 4

    Download the .vtt

    Download .vtt saves a UTF-8 file named after your SRT. Copy puts the same text on the clipboard.

What actually changes between SRT and WebVTT

The two formats look almost the same: a timing line, then one or more lines of text, with a blank line between cues. Three things differ. WebVTT must start with the word WEBVTT on the first line, or a browser will refuse the whole file. Its timings use a dot before the milliseconds, 00:01:02.500, where SRT uses a comma, 00:01:02,500. And the number above each SRT cue is optional in WebVTT, where it becomes a cue identifier; this converter keeps it, which does no harm and lets you match a cue back to the SRT line by line. The text itself carries over, with one rule enforced: a raw ampersand or angle bracket in the dialogue is escaped, because WebVTT reads those as markup.

Why the tags matter

SRT never had a formal standard, so players accepted whatever authoring tools wrote: font colour tags, font faces, and position codes borrowed from the ASS format such as {\an8}, which moves a line to the top of the screen. WebVTT defines its own small set of spans and keeps styling in CSS instead. Bold, italic and underline exist in both and are kept exactly. Everything else has no direct equivalent, so it is removed rather than passed through as junk that would print on screen, and the tool tells you how many of each it took out. If a line was moved to the top for a reason, such as keeping clear of on-screen text, you will need to place it again with a WebVTT line setting.

Subtitle files versus captions in a finished video

A .vtt file sits next to a video and the player draws it on top, which is why the HTML track element and most web players want WebVTT. Captions in a video made with the OneCraft video builder work differently: they are drawn into the frames as the narration plays, one line at a time, so they travel with the MP4 wherever it is posted. The builder does not export an SRT or VTT file. If a platform asks for a separate caption file, convert or write it here; if you want captions that cannot be switched off or lost on upload, burned in captions are the route.

Limits worth knowing

Only SRT is read. A file that already starts with WEBVTT is recognised and you are pointed to the VTT to SRT converter instead, and text with no timing lines at all gets a clear message rather than an empty file. Blocks that have text but no timing are left out and their line numbers are flagged in the gutter, so you can fix them in the source. Cues that end before they start, or start before the cue above, are copied as they are and listed, since some players skip them. Nothing is uploaded and nothing is stored, ever; the conversion runs in this page as you type.

Limits

  • Styling tags beyond bold, italic and underline are dropped, including font colour, font face and size, and {\an8} style position codes.
  • Files over 20 MB are refused with a message. Subtitle files are text and are almost always well under 1 MB.
  • Cues out of time order are kept in file order and flagged, not sorted.

What it does not do

  • It does not shift or stretch the timings. Use the subtitle shifter for that.
  • It does not read ASS, SSA, SUB or SBV files, only SRT.
  • It does not burn the subtitles into a video or attach them to one.

Questions people ask

Why does my VTT file not show up in the browser?

The most common reason is a missing WEBVTT line at the very top, which makes browsers reject the file outright. The next is the server sending it with the wrong type: a .vtt file should be served as text/vtt. A track loaded from another domain also needs CORS headers. Files from this converter start with the right header and are UTF-8.

Does converting change any of the timings?

No. Each start and end time is read to the millisecond and written back unchanged, only with a dot in place of the comma and the hours always written as two digits. If the subtitles are early or late against the video, that is a sync problem in the source, and the subtitle shifter can move or stretch them.

My SRT has strange characters like é after converting. What happened?

That pattern comes from a file saved in an old Windows encoding being read as UTF-8, or the reverse. This converter checks: if the file is not valid UTF-8, it reads it as Windows Latin text, says so in a note, and writes the WebVTT as UTF-8, which is what the format requires. Pasted text is already decoded by your browser.

Can I convert several SRT files at once?

Not in one go; the tool takes one file or one paste at a time. Each conversion is instant, though, so a season of episodes is a matter of opening each file and pressing Download. The download keeps the original file name with a .vtt extension, so the files stay paired with their videos.

Will YouTube or Vimeo accept the .vtt file?

Both accept WebVTT for uploaded captions, as well as SRT, so for those two you can upload either. WebVTT matters most for your own site, where the HTML track element only reads WebVTT, and for players built on it. Check the platform's caption help page for any line length or character limits of its own.

Make a video with captions burned in

Take what you made here into videos.

Create a video with OneCraft

More tools like this

Background reading: the question page on this.

Sources

Written and checked by the OneCraft team. Last checked .