Skip to content
Novus Examples
vtt258 B

VTT — Chapter Track

A WebVTT file used as a chapter track rather than captions: cue text is a chapter title and the cues tile the timeline with no gaps. Players surface these as seek-bar markers, so it exercises a different code path from subtitle rendering despite being the same file format.

Preview, first 16 linesvtt
WEBVTT

NOTE Chapter track — kind="chapters", not captions. Cue text is a chapter title.

intro
00:00:00.000 --> 00:00:04.000
Introduction

demo
00:00:04.000 --> 00:00:10.000
Live demonstration

summary
00:00:10.000 --> 00:00:15.000
Summary and next steps

Specifications

Kind
chapters
Chapters
3
Contiguous
yes — no gaps between chapters

Testing contract

Expected to pass
Scenario
Attach the file as a chapters track and check the boundaries for gaps.
Expected result
3 chapters, contiguous - each begins exactly where the previous one ends, with no gaps. That property is what lets a chapter list be rendered as a segmented progress bar; a file with gaps cannot be, and this is the positive control for that check.

What is a .vtt file?

WebVTT (VTT) is the W3C subtitle and caption format used by the HTML5 <track> element for timed text on the web. It extends the SubRip model with cue settings, positioning, styling, and metadata, and requires a WEBVTT header. It is the standard format for browser-based captions.

How to use this file

Use an example VTT to test HTML5 <track> caption rendering, cue-setting and positioning parsers, and converters between WebVTT and SRT.

How to use this file for testing

“VTT — Chapter Track” is a deterministic Novus Examples fixture for Subtitle parsing, Video QA. The same captions written out across SubRip, WebVTT, ASS/SSA, SBV, TTML and a synced LRC lyric file, with known timings, for exercising subtitle parsers, format converters and burn-in tools against every serialisation.

Documented properties for this file: VTT · 258 bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such, expect parsers to fail loudly rather than silently accept them.

Media fixtures are short and synthetic by design. Prefer waveform or transcript ground truth in the same group when measuring ASR, trim, upscale, or sync tools; do not assume broadcast-quality masters.

Parse the cues and check timings against the documented count; the same captions ship across subtitle formats so you can diff a converter against a known target.

Code examples

<video controls src="clip.mp4">
  <track kind="captions" srclang="en" label="English" src="chapters.vtt" default>
</video>

Generated by generation/video_timedtext.py. Free for any use, no attribution required, license.