SRT and VTT hold the same thing: numbered or unnumbered blocks of text, each with a start and an end time. Pick VTT (WebVTT) for a video on your own web page, since the HTML <track> element reads WebVTT files. For an editor, a player, or a video platform, pick a format its own help page lists; YouTube’s lists both. When in doubt, download both: they are written from the same cues.
The same subtitles in both formats
We ran a 3.5-second test clip through the subtitle generator on September 26, 2026: a sentence from the LibriSpeech corpus (CC BY 4.0), “Concorde returned to its place amidst the tents.” The page made one cue, we split it after “place” with the editor, and downloaded both files. Here they are, byte for byte apart from the invisible mark at the start of the SRT file (explained below).
The SRT file:
1
00:00:00,570 --> 00:00:02,344
Concorde returned to its place
2
00:00:02,344 --> 00:00:03,350
amidst the tents.
The VTT file:
WEBVTT
00:00:00.570 --> 00:00:02.344
Concorde returned to its place
00:00:02.344 --> 00:00:03.350
amidst the tents.
Same cues, same times, same text. Four details differ.
The differences, line by line
- The header. A VTT file must start with the line
WEBVTT; it is the only part of the format that is required (MDN’s WebVTT reference). There is no header in SRT: the file starts with the first cue. - Cue numbers. In SRT, every cue starts with its number, counting from 1. In VTT, a line above the times is an optional name for the cue, so our file leaves it out.
- The time format. SRT separates the milliseconds with a comma (
00:00:02,344), VTT with a dot (00:00:02.344). VTT also allows the hours to be dropped (00:02.344); our files always write them. This is why renaming a.srtfile to.vttdoes not convert it: the header is missing and every comma is wrong. - Comments, position, and styling. VTT has comment blocks that start with
NOTE, optional cue settings after the times that place a cue on the screen, andSTYLEblocks that style cues with CSS (all in MDN’s reference above). SRT has no comments and no official specification for styling. Some SRT files carry<i>and<b>tags, and whether a program shows them as italic and bold is up to the program: YouTube’s help page, for one, says it recognizes no style markup in SubRip files.
Two details you cannot see above also differ:
- Text encoding. A VTT file must be encoded in UTF-8, MDN’s reference says. Nothing in the SRT file above names its encoding: it starts with the first cue. So a program has to guess, and a wrong guess can turn accented letters into symbols. That is why our SRT files start with a UTF-8 byte order mark, three invisible bytes that tell a program the file is UTF-8; our VTT files do not need one.
- Special characters. VTT needs
&and<written as&and<(and recommends>for>); our writer does all three for you. SRT has no such rule, so if you type<i>into a cue, the SRT file keeps it as you typed it, and a program that reads tags in SRT may show the text after it in italics.
Our files hold only the cues, with no position or styling settings. The one extra is in VTT: if a run stops before the end of your file, the VTT file carries a NOTE saying where the subtitles stop, which players do not display. The SRT file has no way to say it and holds the cues only.
Which one to download
- A video on your own web page: VTT. The HTML
<track>element reads WebVTT files (MDN, the track element). Our automated test loads our VTT output in Chromium’s own<track>reader and gets the same cues back. - YouTube: either. YouTube’s help page Supported subtitle and closed caption files lists SubRip (.srt) and WebVTT (.vtt). That is YouTube’s documentation; we have not tested an upload ourselves yet.
- A video editor or a desktop player: check the program’s own help page for the formats it imports, and download one it lists. We have not tested named programs yet, so this guide does not list them.
- Not sure: download both. They are small text files that hold the same cues.
A TXT file is a different thing: a transcript with no cue times, which a player cannot show as subtitles. This site writes SRT and VTT only.
Subtitles or captions?
The W3C’s accessibility guidance defines captions as a text version of the speech and the non-speech audio needed to understand the content, such as who is speaking and important sounds. Subtitles, in the narrow sense, are the words spoken.
Both SRT and VTT can carry either one; the difference is in the text. Our generator writes the words spoken, in the language spoken, with no speaker names and no sound descriptions. If you need captions for accessibility, add those yourself in the editor before you download: a cue can hold [door slams] or MARIA: Are you coming? like any other text. For VTT, the format also has a voice tag, <v Maria>, which names a voice; MDN describes it as a way to style that speaker’s text with CSS. Our editor writes plain text, so type the name as text instead.
Line length is up to the file’s maker
Neither format limits the length of a cue. Our generator makes cues of at most two lines of 42 columns (a wide character, as in Chinese or Japanese, counts as two) and at most 7 seconds, and keeps a cue on screen for at least 1 second when the next one allows it. Two lines of 42 characters is also the limit in Netflix’s English (USA) timed text style guide. Why a subtitle is at most two lines explains the limits, and when your own edits go past them.
The times come from the speech recognition model’s estimate of when its words start and end, or, where it gives no word times that fit the text, from a share of the segment’s time in proportion to the text; how the words become timed cues explains both. The middle time in the example above, 00:00:02,344, comes from the split: the editor shared the cue’s time between the two parts in proportion to their text. We have not measured how close the times land yet, so play your video with the subtitles on before you publish, and if a cue comes early or late, edit the subtitles before you download: move a start or an end by 0.1 second, split a long cue, or merge two short ones.
Opening and checking a subtitle file
Both are plain text files, and any text editor opens them. Four things to check:
- The first line. A VTT file must say
WEBVTT. An SRT file starts with1. - The accents. If letters such as é or ñ look broken, the program read the file in the wrong encoding. Reopen it as UTF-8.
- Stray characters at the start. If a program shows
before the1, it has read the file in a one-byte-per-character encoding: those are the three bytes of the byte order mark, and every accented letter is misread the same way. Close the file without saving, and reopen it with the encoding set to UTF-8, as in the check above; saving from the misread view would write the wrong characters into the file. - After hand edits: in SRT, keep an empty line between cues and the numbers in order; in VTT, keep the empty line after
WEBVTT.
Ready to make one? Make an SRT or VTT file from your video in your browser. The file stays on your device, and you can check every cue over the picture before you download.