Skip to content
Novus Examples
vtt210 B

VTT — Intentionally Corrupt: Malformed Cue Timestamp

An intentionally corrupt WebVTT file with timestamps that are not zero-padded — 00:00:3.000 and 00:1:03.000 where the grammar requires two digits. The third cue is well-formed. A strict parser drops the two bad cues; a lenient one accepts them; a regex-based one may match partially and produce a time that is wrong rather than rejected, which is the worst outcome of the three.

Preview — first 14 linesvtt
WEBVTT

1
00:00:01.000 --> 00:00:3.000
The end timestamp has one-digit seconds

2
00:1:03.000 --> 00:01:06.000
The start timestamp has one-digit minutes

3
00:00:07.000 --> 00:00:09.000
This cue is well-formed

Specifications

Corruption
seconds and minutes not zero-padded to two digits
Affected Cues
2
Valid Cues
1
Spec
WebVTT requires two-digit minutes and seconds

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 — Intentionally Corrupt: Malformed Cue Timestamp” is a deterministic Novus Examples fixture for Streaming manifests, Video QA. HLS playlists and DASH MPDs covering multi-bitrate ladders, byte-range addressing, and segment templates. Served inline with permissive CORS under /files/stream/, so a player can load them from any origin without re-hosting.

Documented properties for this file: VTT · 210 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.

Code examples

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

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