Skip to content
Novus Examples
srt122 B

SRT — Intentionally Corrupt: Missing Timestamp Arrow

An intentionally corrupt SubRip file: the first cue's timing line is missing the --> separator, so it cannot be parsed as a time range. The second cue is well-formed, which is the point — a robust parser should report the bad cue and still return the good one rather than failing the whole file.

Preview, first 8 linessrt
1
00:00:01,000 00:00:03,000
The timing line has no --> separator

2
00:00:03,500 --> 00:00:06,000
This cue is well-formed

Specifications

Corruption
timing line missing the --> separator
Affected Cue
1
Valid Cues
1
Recoverable
yes — cue 2 is intact

Testing contract

Expected to recover
Scenario
Parse the file with a SubRip parser and count the cues it returns.
Expected result
Cue 1 cannot be parsed - its timing line has no `-->` separator, so it is not a time range - while cue 2 is well formed. A robust parser returns 1 usable cue and reports the bad one; returning zero cues, or failing the whole file, is the behaviour this fixture catches. Note the string `-->` does occur twice in the file: once in cue 2's timing line and once inside cue 1's caption text, so a parser that scans for the arrow anywhere rather than at a line position will find the wrong one.

What is a .srt file?

SRT (SubRip) is a plain-text subtitle format listing numbered cues, each with a start and end timecode and one or more lines of text. It is simple, human-readable, and extremely widely supported by players. It carries no styling metadata beyond basic inline tags.

How to use this file

Use an example SRT to test subtitle parsing, timecode handling, and converters that translate between SRT and WebVTT or other caption formats.

How to use this file for testing

“SRT — Intentionally Corrupt: Missing Timestamp Arrow” 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: SRT · 122 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="no-arrow.srt" default>
</video>

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