Skip to content
Novus Examples
srt296 B

SRT — HTML Entities and Angle Brackets in Cue Text

Cue text mixing escaped entities, raw ampersands, unescaped angle brackets used as maths, and one genuine italic tag. SubRip has no formal escaping rules, so every parser draws the line somewhere different. Shows immediately whether a tool decodes entities, passes them through, or mistakes '3 < 5' for an unclosed tag and swallows the rest of the line.

Preview — first 16 linessrt
1
00:00:01,000 --> 00:00:03,000
Ampersand: &amp; and a raw & character

2
00:00:03,500 --> 00:00:06,000
Angle brackets: &lt;not a tag&gt; and <i>a real tag</i>

3
00:00:06,500 --> 00:00:09,000
Math: 3 < 5 > 1, unescaped

4
00:00:09,500 --> 00:00:12,000
Numeric entity: &#8212; and named: &mdash;

Specifications

Cues
4
Entities
&amp; &lt; &gt; &#8212; &mdash;
Raw Angle Brackets
yes
Real Markup
one <i> tag

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 — HTML Entities and Angle Brackets in Cue Text” is a deterministic Novus Examples fixture for Subtitle parsing, Video QA. The same captions across SubRip, WebVTT, ASS/SSA, SBV, and TTML, plus a synced LRC lyric file — for testing subtitle parsers, players, burn-in tools, and format converters against known timings.

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="entities.srt" default>
</video>

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