Free VTT test files and sample generator
The W3C subtitle format used by HTML5 video via the <track> element. Generate valid .vtt sample files to test browser captions, streaming players and accessibility checks.
What is a .vtt file?
VTT: WebVTT Subtitle. WebVTT is the W3C subtitle format built for HTML5 video, loaded through a <track> element and parsed by the browser itself. It looks much like SubRip, cues with timecodes and text, but opens with a WEBVTT line, separates milliseconds with a full stop, and supports positioning and styling that SubRip has no way to express.
Why generate a test VTT file?
- Test browser captions on an HTML5 <video> element.
- Exercise a streaming player, or an accessibility check that requires captions.
- Check parser behavior when the WEBVTT header is missing or cues overlap.
What you can put inside a .vtt file
You get 3 content options for VTT, so the file holds something meaningful rather than random padding: Dialogue cues, Many short cues, Styled text (italic/bold). For VTT these are alternatives, so choose the one that matches what you need to test.
How a .vtt file is identified
A .vtt file has no signature at the start. A text format has no identifying leading bytes, so the extension and the reported media type are the only claims about it until a parser actually reads it, which is why validating uploads by extension alone is unsafe.
Negative testing with broken VTT files
- Invalid. Identifiable, but wrong inside, so it fails during parsing.
- Corrupted. The leading bytes are destroyed. Same length as the valid file.
- Incomplete. Truncated part-way, so it is genuinely shorter.
- Empty. Chosen under Content rather than File Condition: valid structure, no data.
Which failure to reach for, and what to assert for each, is covered in how to make a corrupted file for testing. For upload limits and type checks see testing file upload validation, and for this format's encodings, UTF-16 and BOM test files.
Sample VTT content
WEBVTT 1 00:00:00.000 --> 00:00:02.500 Software Test Data 2 00:00:02.500 --> 00:00:05.000 Cue 2 of the sample track
This shows the shape of the file. Your download is generated fresh at the size you choose, so the values will differ.
How to open and verify the file
Add it to a page as `<track src="file.vtt" kind="subtitles">` and the browser will parse it: the developer console reports any cue it rejects. VLC and ffprobe read it too.
Media type text/vtt · extension .vtt · category Video
Generate a .vtt file → · questions about sizes, privacy or cost are answered on the site FAQ.
Frequently asked questions about VTT files
What identifies a .vtt file?
Nothing at the start of the file does. A text format has no identifying leading bytes, so the extension and the reported media type are the only claims about it until a parser actually reads it, which is why validating uploads by extension alone is unsafe.
What can go inside the VTT file?
There are 3 content options for .vtt: Dialogue cues, Many short cues, Styled text (italic/bold). For VTT these are alternatives, so pick the one matching what you need to test.
Can I download several broken VTT files at once?
Yes, select more than one File Condition and you get one ZIP containing a .vtt per condition, each named after its condition.
Can the VTT file use UTF-16 or a byte-order mark?
Yes. .vtt is a text format, so it can be generated as UTF-8, UTF-8 with a byte-order mark, UTF-16 LE or UTF-16 BE. The body is shortened before re-encoding so the finished file still lands on the exact size you asked for. Note that a UTF-16 file always has an even byte count.
How do I open or verify the VTT file?
Add it to a page as <track src="file.vtt" kind="subtitles"> and the browser will parse it: the developer console reports any cue it rejects. VLC and ffprobe read it too.