Skip to content
Novus Examples
vtt455 B

VTT — Positioned and Aligned Cues

WebVTT cues carrying the full positioning grammar — line, position, align and size — plus named cue identifiers instead of numbers. Captions are placed at four different points in the frame, which is what real subtitles do to avoid covering burned-in text. Parsers that treat everything after the timestamp as cue text will fold these settings into the visible caption.

Preview, first 20 linesvtt
WEBVTT

NOTE Positioned cues — each uses a different alignment and line placement.

top-left
00:00:01.000 --> 00:00:04.000 line:0 position:10% align:start
Top left, start-aligned

top-right
00:00:04.500 --> 00:00:07.500 line:0 position:90% align:end
Top right, end-aligned

middle
00:00:08.000 --> 00:00:11.000 line:50% align:center size:50%
Centre of frame, half width

bottom
00:00:11.500 --> 00:00:15.000 line:-1 align:center
Default bottom position

Specifications

Cues
4
Settings
line, position, align, size
Identifiers
named, not numeric

Testing contract

Expected to pass
Scenario
Parse the file as WebVTT and resolve each cue's positioning settings.
Expected result
4 cues carrying `line`, `position`, `align` and `size` settings, with named rather than numeric cue identifiers. The settings are the assertion: a parser that reads the cue text but discards the settings renders every cue at the default bottom-centre, which looks plausible and is wrong.

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 — Positioned and Aligned Cues” is a deterministic Novus Examples fixture for Subtitle parsing, Video QA, Caption encoding. 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: 4 cues. 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="positioned.vtt" default>
</video>

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