Skip to content

Glossary

What is a VTT file?

By the KeyMo team · Updated

VTT is short for WebVTT, Web Video Text Tracks: a plain-text file that stores captions or subtitles as timed cues so a web video player can display them. It looks like an SRT file but starts with a WEBVTT header, uses a period in timestamps and can carry position and basic text styling. The file ends in .vtt.

What is inside a .vtt file

A WebVTT file is plain text. W3C's specification says it must be UTF-8 and served as the type text/vtt. Each cue is a time range followed by the words to show.

From the W3C WebVTT specification, read on 11 October 2026.
PartWhat it looks likeWhat it does
HeaderWEBVTT on the first line, then a blank lineTells the player this is WebVTT
Timing line00:00:01.000 --> 00:00:03.500Start time, an arrow, end time; thousandths follow a period
Cue textThe words to display, one or two linesWhat the viewer reads; may include bold, italics or underline tags
Cue settingsOptional words after the times, such as line, position, size, alignWhere the cue box sits on the video
NOTE blockA block that starts with NOTEA comment the player ignores

WebVTT next to SRT

SRT is the file most people meet first, and YouTube itself recommends it for beginners. The two look alike, which is why a bad conversion is easy to make. W3C's accessibility pages name WebVTT as the most common caption format on the web and list SRT and TTML as other formats.

SRT details are as shown in YouTube Help's sample file, since no formal SRT spec was found.
WebVTT (.vtt)SRT (.srt)
First lineWEBVTT is requiredNo header; each cue starts with a number in YouTube's example
Millisecond separatorA period: 00:00:01.000A comma: 00:00:01,000 in YouTube's example
Hours in timestampsOptional when zeroShown in YouTube's example in full
Position and stylingCue settings and a STYLE blockYouTube reads the basic version only, with no style markup
Official specW3C Candidate Recommendation Draft, 20 May 2026No official specification found in this research

Converting SRT to VTT by hand

  1. Add a first line that reads WEBVTT, then leave one blank line.
  2. In every timestamp, change the comma before the milliseconds to a period.
  3. Leave the cue numbers if you like; WebVTT allows identifiers as long as each one is unique.
  4. Save the file as UTF-8 with the .vtt extension.
  5. Play it against the video once to confirm the timing lines up.

For a long file, the SRT to VTT converter does the same steps in one go. Background on the other format is in SRT file.

Where a VTT file fits with vertical clips

A .vtt file is a separate text track. Viewers can usually switch it on or off, so it counts as closed captions. Burned-in captions are drawn into the picture and cannot be turned off; W3C calls those open captions. Short-form clips usually rely on burned-in words, since a viewer in a vertical feed rarely goes looking for a caption button. A .vtt still earns its place on a website player or a long upload where viewers use the caption button.

KeyMo's captions are styled into the vertical clip itself, in 12 styles with word-by-word timing or none at all. That is a different job from a sidecar .vtt, and this page makes no claim that KeyMo exports a separate subtitle file. See closed captions and open captions for the difference.

Common mistakes

  • Leaving a comma in the timestamps after copying from an SRT file.
  • Forgetting the WEBVTT header, so the player rejects the file.
  • Putting a cue's end time before its start time; the end must be later.
  • Saving in an encoding other than UTF-8, which the specification requires.
  • Trusting auto-generated captions without a read-through. W3C's guidance says automatic captions usually need significant editing.

Sources: W3C: WebVTT, The Web Video Text Tracks Format (checked 11 October 2026); W3C WAI: Captions/Subtitles (checked 11 October 2026); YouTube Help: Supported caption and subtitle file types (checked 11 October 2026).

FAQ

Is a VTT file the same as an SRT file?

No, though both are plain-text caption files. WebVTT needs a WEBVTT header and a period before milliseconds, and it supports cue positioning. SRT uses numbered cues and a comma before milliseconds.

How do I open a VTT file?

Open it in any plain-text editor, since the file is UTF-8 text. Video players that support text tracks, and web pages using the track element, can also load it directly.

Does YouTube accept VTT files?

Yes. YouTube Help lists WebVTT among its advanced caption formats, though it marks support as an initial implementation and limits styling to bold, italics and underline.

What else does VTT stand for?

In French, VTT is short for vélo tout terrain, a mountain bike. In tabletop gaming it usually means a virtual tabletop. Neither has anything to do with captions, which is the meaning here.

Can I burn a VTT file into a video?

Yes, with an editor or caption tool that renders the text into the picture. Once burned in, the captions become open captions and viewers can no longer switch them off.

What MIME type does a VTT file use?

It uses text/vtt, and the W3C specification registers the file extension vtt for that type. The file itself must be encoded as UTF-8.