Convertur

SRT to VTT converter

Convert SRT to VTT for HTML5 video captions. Adds the WEBVTT header and fixes every timestamp. Runs in your browser, so the file is never uploaded.

Loading tool...

How to convert SRT to WebVTT

Drop your .srt file above and press Convert. You get a .vtt file you can use with the HTML5 <track> element right away. The file is read in this browser tab and never sent to a server.

What is WebVTT?

WebVTT, short for Web Video Text Tracks, is the W3C caption format behind the HTML5 <track> element. Its files end in .vtt. It grew out of SRT, so a basic cue looks almost the same: a timing line, then one or more lines of text. WebVTT adds a WEBVTT header, cue settings for position, CSS styling with the ::cue selector, NOTE comments and speaker tags.

Difference between SRT and VTT

Both formats store a start time, an end time and text for each subtitle. They differ in a few details that matter to players:

  • Header: a VTT file must start with the line WEBVTT. SRT has no header.
  • Timestamps: SRT puts a comma before the milliseconds, as in 00:01:02,500. VTT uses a dot, as in 00:01:02.500, and can leave out the hours.
  • Cue numbers: every SRT cue starts with a number. In VTT the identifier line is optional and can be any text.
  • Position: VTT cue settings after the timestamp, such as line, position, size and align, control where a caption appears. Plain SRT has no standard way to do this.
  • Styling and comments: VTT supports STYLE blocks with ::cue CSS, NOTE comments and voice tags like <v Anna>. SRT only has simple <i>, <b> and <u> tags, plus <font> in many players.
  • Support: browsers only accept VTT in the <track> element. Desktop players, video editors and most upload forms prefer SRT.

Why convert SRT to VTT

The browser's built-in video player won't load .srt files. It needs .vtt. Converting your subtitles lets you add captions to a <video> element on any website, and to web players built on the same standard.

What changes when you convert

The tool adds the WEBVTT header, switches each timestamp from a comma to a dot before the milliseconds, and drops the SRT cue numbers, which WebVTT doesn't need. Start and end times, line breaks and cue text stay the same. The <i>, <b> and <u> tags carry over and work in WebVTT. SRT <font> tags are copied too, but browsers won't apply their colors because <font> isn't part of WebVTT. The file is read as UTF-8, which WebVTT requires. If an older SRT was saved as Windows-1252 or another legacy encoding, re-save it as UTF-8 first or accented letters will come out garbled.

How to add VTT captions to an HTML5 video

Once you have the .vtt file, one line of HTML attaches it to a video:

  • Upload the .vtt file to your site next to the video.
  • Inside your <video> element, add <track kind="subtitles" src="captions.vtt" srclang="en" label="English">. Add the default attribute to show it right away.
  • Make sure your server sends .vtt files with the text/vtt content type.
  • If the captions live on a different domain from the page, turn on CORS for that server and add the crossorigin attribute to the <video> element.
  • Add one <track> per language so viewers can pick from the captions menu.

Before you start

Input: SRT. Output: WebVTT. The settings appear before anything runs, so you can check them first. Your original file is never changed.

A document conversion may not keep every font, layout rule, embedded object, subtitle cue or app-specific feature. Read through the full result before you send or submit it.

Keep the original until you have opened and checked the result. The work happens in this browser tab, so the size you can handle depends on your device's memory, your browser and the file itself.

How to use the SRT to VTT converter

  1. Drop your .srt file into the box above, or click to pick it.
  2. Press Convert to rewrite the file as WebVTT.
  3. Download the .vtt file and point your <track> element at it.

Last updated · How we build and check tools · Report an error

Learn more

Related tools

SRT to VTT FAQ