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.
| Part | What it looks like | What it does |
|---|---|---|
| Header | WEBVTT on the first line, then a blank line | Tells the player this is WebVTT |
| Timing line | 00:00:01.000 --> 00:00:03.500 | Start time, an arrow, end time; thousandths follow a period |
| Cue text | The words to display, one or two lines | What the viewer reads; may include bold, italics or underline tags |
| Cue settings | Optional words after the times, such as line, position, size, align | Where the cue box sits on the video |
| NOTE block | A block that starts with NOTE | A 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.
| WebVTT (.vtt) | SRT (.srt) | |
|---|---|---|
| First line | WEBVTT is required | No header; each cue starts with a number in YouTube's example |
| Millisecond separator | A period: 00:00:01.000 | A comma: 00:00:01,000 in YouTube's example |
| Hours in timestamps | Optional when zero | Shown in YouTube's example in full |
| Position and styling | Cue settings and a STYLE block | YouTube reads the basic version only, with no style markup |
| Official spec | W3C Candidate Recommendation Draft, 20 May 2026 | No official specification found in this research |
Converting SRT to VTT by hand
- Add a first line that reads WEBVTT, then leave one blank line.
- In every timestamp, change the comma before the milliseconds to a period.
- Leave the cue numbers if you like; WebVTT allows identifiers as long as each one is unique.
- Save the file as UTF-8 with the .vtt extension.
- 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).