Convert SRT subtitles to WebVTT

Upload your .srt file and get a .vtt file that plays in any browser. No upload to a server, no account, no watermark.

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

About this tool

Browsers don't interpret the SRT format. If you add it to an HTML5 `<track>` element, nothing happens: no warning, no subtitles. The supported format is WebVTT, and both are similar enough that the conversion is purely mechanical: same timings, same text, a header at the start, and a dot instead of a comma in the milliseconds.

Even so, most converters fail on real files: a subtitle file downloaded from any source usually includes a byte-order mark, Windows line endings, positioning settings and characters that WebVTT interprets as markup. All of that is resolved before generating the final file.

Features

  • The byte-order mark and Windows line endings are removed before writing the header.
  • Ampersands and less-than signs are correctly escaped, preventing interpretation errors.
  • Italics, bold and underline are preserved: both formats support them.
  • Timings to the millisecond: the result is the same file in a different format.

How it works

  1. 1

    Upload the .srt file

    Or paste the text directly. It's processed in your browser and never sent to a server.

  2. 2

    Review the result

    You'll see the number of subtitles processed and their duration, alongside the converted file.

  3. 3

    Download the .vtt file

    Ready for a `<track>` element, a player, or any use requiring WebVTT.

In detail

How the two formats actually differ

Less than it might seem, but enough for one to fail where the other works. A WebVTT file must begin with the word WEBVTT on its first line; if it's missing, the browser discards the entire file with no warning. Milliseconds are separated by a dot, not a comma. And sequential numbering, mandatory in SRT, plays no role here.

There's a fourth difference that causes most simple converters to fail: in WebVTT, text is interpreted as HTML. An unescaped ampersand or a less-than sign is read as markup and can alter the rest of the line. Here they're correctly escaped before the file is generated.

When you specifically need a VTT file

When the player is part of a web page. The HTML5 `track` element, which overlays subtitles on a video on a site, only supports WebVTT, and that incompatibility is the most common reason someone looks for this conversion.

HLS streams also require it, along with several embedded players and some corporate video platforms. Outside the browser, the situation reverses and most software prefers SRT, so it's advisable to keep both formats.

Frequently asked questions

Need to transcribe a video?

Upload it and get the text with timestamps, each voice identified and a summary. No account needed to start.