SRT to VTT converter (and VTT to SRT)

Convert subtitles between SRT and WebVTT, shift the timing and renumber cues. Nothing leaves your browser.

How it works

  1. Paste the text of your .srt or .vtt file
  2. Choose WebVTT or SRT, and a time shift if you need one
  3. Copy the result or download it as a .vtt or .srt file

What changes between SRT and WebVTT

To convert SRT to VTT, add a WEBVTT line at the top and change the comma before the milliseconds in every time to a dot, so 00:01:02,500 becomes 00:01:02.500. That is the whole format difference for plain subtitles. SRT writes a number on each cue and uses a comma. WebVTT starts with the WEBVTT header, uses a dot, and cue numbers are optional. Going from VTT to SRT does the reverse: the header goes, dots become commas and every cue gets a number, because SRT needs one. The cue text is copied as it is. Tags such as i and b are the same in both formats. Tags that only one format knows, such as font in SRT or voice tags in WebVTT, are not converted or checked.

Cue settings, notes and styles

WebVTT can carry extras that SRT cannot. Cue settings are the words after the end time, such as align:start or position:10%. NOTE blocks are comments, STYLE blocks hold CSS for cues, and REGION blocks define areas on the screen. Converting to SRT always removes all of them. When you convert to WebVTT, they are removed unless you turn on Keep cue settings or Keep NOTE, STYLE and REGION blocks. Kept blocks stay next to the cues they were between. Header text after WEBVTT, such as a title or a Kind line, is kept only when Keep NOTE, STYLE and REGION blocks is on.

Shifting the timing and renumbering

Shift times by moves every cue by a number of seconds, to the millisecond. 2.5 makes each cue 2.5 seconds later, and -1.25 moves them 1.25 seconds earlier. A cue at 00:00:01,000 shifted by -2 would start at minus one second, which a subtitle file cannot hold. Its start is set to 0 and the page says how many cues were moved. A cue that ends at or before 0 after the shift is removed and counted. Renumber cues from 1 writes 1, 2, 3 in order. If the numbers in your SRT repeat, skip or are missing, the page lists the first cues where that happens. With renumbering off, the original numbers are kept.

What the checks catch and what they miss

Each cue must have a time line with two readable times, written 00:01:02,500, 00:01:02.500 or 01:02.500, and cues must be separated by a blank line. A cue whose time cannot be read, or that ends before it starts, is left out and its position in the file is listed. A byte order mark and Windows line endings are handled, and the result uses plain line breaks. The page does not check the language, the text or whether lines are too long to read. When writing WebVTT, a cue text line that contains the arrow is changed to a safe form, since WebVTT does not allow it. Up to 50,000 cues and 1,000,000 characters are accepted. The text stays in your browser. Download saves a .vtt or .srt file, matching the Convert to choice.

Frequently asked questions

How do I convert an SRT file to VTT?

Paste the SRT text, leave Convert to on WebVTT and copy the result. It adds a WEBVTT line and changes every 00:01:02,500 to 00:01:02.500. Save the text as a file ending in .vtt and use it in your video player.

Why does my VTT file not work with a comma in the time?

WebVTT writes the milliseconds after a dot, 00:01:02.500, while SRT uses a comma, 00:01:02,500. A file with commas and a WEBVTT header is not valid. This page rewrites all times to the right separator for the format you choose.

How do I make subtitles appear 2 seconds earlier or later?

Type 2 in Shift times by to delay every cue by 2 seconds, or -2 to show them 2 seconds earlier. You can use decimals, such as 0.5 or -1.25. Cues that would start before 0 are set to 0, and the page says how many.

What is lost when I convert VTT to SRT?

Cue settings, NOTE, STYLE and REGION blocks, and the WEBVTT header. SRT has no place for position, alignment or CSS. Text and timing are kept, and tags such as i and b stay as they are.

Why does the page say a cue number is out of order?

SRT cues are normally numbered 1, 2, 3 in order. If one repeats, skips or is missing, for example 1, 2, 4, the page lists the first cues. Leave Renumber cues from 1 on and the output is numbered correctly.

Is my subtitle file uploaded?

No. The text is processed in your browser, in this tab, and is not uploaded. Your choices, such as the output format, are saved in this browser, the text is not.