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 a web page, since that is the only format the HTML <track> element reads. Pick SRT for most other places, since it is the older, simpler format that many editors, players, and platforms open. When in doubt, download both: they are written from the same cues.

The rest of this guide shows one real export in both formats, then each difference line by line.

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

  1. 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.
  2. 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.
  3. 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 .srt file to .vtt does not convert it: the header is missing and every comma is wrong.
  4. Comments, position, and styling. VTT has comment blocks that start with NOTE, settings after the times that place a cue on the screen, and styling through CSS. SRT has no comments, and no official specification for styling, although many players show <i> and <b> tags as italic and bold.

Two details you cannot see above also differ:

  • Text encoding. A VTT file is always UTF-8. An SRT file cannot say which encoding it uses, so a program has to guess, and a guess can turn accented letters into symbols. 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 &amp; and &lt; (and recommends &gt; 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 and many players will show the rest of the line 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. SRT is the one to try first, since it is the older and simpler format. 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 to read, with no times on the screen. It has no cue times, so a player cannot show it as subtitles.

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 some players use to show the speaker; 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 characters 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 each word starts and ends. We have not measured how close they 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. Any text editor opens them, and a few checks catch most problems:

  • The first line. A VTT file must say WEBVTT. An SRT file starts with 1.
  • 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. A program that does not know the byte order mark may show it as  before the 1. Save the file as UTF-8 in that program, or choose “UTF-8 with BOM” if it asks.
  • 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.