Browser-native captions
How the WebVTT File Format Works
WebVTT is the timed-text format designed for web media. A VTT file begins with a WEBVTT signature and stores cues with dot-separated milliseconds. Browsers can attach it to video through a track element, while cue settings can influence alignment and position.
A minimal WebVTT file
WEBVTT
00:01:24.500 --> 00:01:27.200
Choose the caption track you need.
WebVTT syntax differs from SRT
The WEBVTT header identifies the document. A blank line follows it, then timed cues. VTT uses a period before milliseconds, while SRT typically uses a comma. Cue identifiers are optional and do not have to be sequential numbers.
WebVTT can also carry notes, regions, and cue settings. Add advanced settings only when the destination supports and requires them; a minimal file is easier to move between web players.
- ✓ First line: WEBVTT
- ✓ Timestamp pattern uses .mmm
- ✓ Cue identifiers are optional
- ✓ Supports web-oriented cue settings
Connect VTT to HTML5 video
Upload the VTT file where the site can serve it, then reference it from a track element with the correct kind, source language, and label. The file must be reachable by the browser and served with an appropriate text MIME type.
A correct-looking file can still fail because of cross-origin rules, an incorrect path, or server headers. Test in the production player and inspect the browser network response when captions do not appear.
- ✓ Use kind="captions" or kind="subtitles" deliberately
- ✓ Set srclang and a readable label
- ✓ Verify the VTT URL returns successfully
- ✓ Test cross-origin delivery
Continue this subtitle workflow
Frequently asked questions
Why does VTT use dots instead of commas?
WebVTT timestamp syntax uses a period before milliseconds. SubRip commonly uses a comma.
Can VLC open VTT?
Some desktop players support it, but SRT remains the safer general interchange format when web-specific features are unnecessary.
Reviewed and maintained by the SubtitleDownloader.com team.