Convert SRT subtitles to WebVTT

Drop your .srt file and get a .vtt that any browser can play. No upload, no account, no watermark.

  1. 1File
  2. 2Conversion
  3. 3Download

What this tool does

A browser cannot read an SRT file. If you drop one into an HTML5 `<track>` element, nothing shows up — no error, no subtitles, nothing. What browsers read is WebVTT, and the two formats are close enough that the conversion is mechanical: the same timings, the same text, a header on top and a dot instead of a comma in the milliseconds.

That's why almost every online converter for this is three lines of code — and why almost every one of them breaks on the same files. A subtitle downloaded from a real site carries a byte-order mark, Windows line endings, positioning settings and the odd ampersand that WebVTT reads as markup. Ours deals with all of that before writing anything.

What we handle that others don't

  • Byte-order marks and Windows line endings, cleaned before writing the header. A BOM in front of WEBVTT is enough for a player to reject the whole file.
  • Ampersands and angle brackets escaped, so a «Tom & Jerry» doesn't eat the rest of the line.
  • Italics, bold and underline kept: both formats understand them.
  • Timings kept to the millisecond. What comes out is the same file, in another format.

How it works

  1. 1

    Drop the .srt

    Or paste the text straight in. It's read in your browser; nothing travels anywhere.

  2. 2

    Check the result

    You'll see how many subtitles came through and how long they run, plus the converted file.

  3. 3

    Download the .vtt

    Ready for a <track>, for a player, or for anything that expects WebVTT.

In detail

What actually differs between the two files

Less than you'd think, and just enough that one won't work where the other does. A WebVTT file must begin with the word WEBVTT on the first line; without it the browser discards the whole file silently. Milliseconds follow a dot instead of a comma. And the sequence numbers that an SRT requires are surplus here.

There's a fourth difference that catches out most quick converters: WebVTT reads the text as if it were HTML. A stray ampersand or a less-than sign mid-line is treated as markup and swallows whatever follows. Here they're escaped before anything gets written.

Where a VTT is the one you need

In any player on a web page. The HTML5 track element — the thing that puts subtitles over a video on a site — understands WebVTT and nothing else, and it's the number one reason anyone ends up looking for this conversion: the subtitles don't appear and there's no error to inspect.

HLS streams ask for it too, along with some embedded players and several corporate video platforms. Outside the browser, though, nearly everything prefers SRT, so it's worth keeping both: they weigh a few kilobytes and save you converting twice.

Questions

And if what you have is the video?

Upload it and you'll get the transcript with timestamps, the speakers separated by name and a summary with the key points. You can start without an account.