{
  "suite": "video-timed-text",
  "generator": "generation/video_timedtext.py",
  "addedIn": "v0",
  "count": 67,
  "note": "Machine-readable index of the timed-text, streaming-manifest and ad-signalling fixtures. Every file listed here is deterministic plain text; re-running the generator reproduces them byte for byte.",
  "files": [
    {
      "id": "vid-tt-enc-utf8-lf",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/cues-utf8-lf.srt",
      "bytes": 352,
      "title": "SRT — UTF-8, LF"
    },
    {
      "id": "vid-tt-enc-utf8-bom-lf",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/cues-utf8-bom-lf.srt",
      "bytes": 355,
      "title": "SRT — UTF-8 with BOM, LF"
    },
    {
      "id": "vid-tt-enc-utf8-crlf",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/cues-utf8-crlf.srt",
      "bytes": 372,
      "title": "SRT — UTF-8, CRLF"
    },
    {
      "id": "vid-tt-enc-utf8-bom-crlf",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/cues-utf8-bom-crlf.srt",
      "bytes": 375,
      "title": "SRT — UTF-8 with BOM, CRLF"
    },
    {
      "id": "vid-tt-enc-utf16le",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/cues-utf16le.srt",
      "bytes": 686,
      "title": "SRT — UTF-16 LE with BOM"
    },
    {
      "id": "vid-tt-enc-utf16be",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/cues-utf16be.srt",
      "bytes": 686,
      "title": "SRT — UTF-16 BE with BOM"
    },
    {
      "id": "vid-tt-script-cjk",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/script-cjk.srt",
      "bytes": 246,
      "title": "SRT — CJK (Japanese)"
    },
    {
      "id": "vid-tt-script-rtl-arabic",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/script-rtl-arabic.srt",
      "bytes": 244,
      "title": "SRT — RTL (Arabic)"
    },
    {
      "id": "vid-tt-script-rtl-hebrew",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/script-rtl-hebrew.srt",
      "bytes": 159,
      "title": "SRT — RTL (Hebrew)"
    },
    {
      "id": "vid-tt-script-cyrillic",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/script-cyrillic.srt",
      "bytes": 208,
      "title": "SRT — Cyrillic"
    },
    {
      "id": "vid-tt-script-emoji",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/script-emoji.srt",
      "bytes": 247,
      "title": "SRT — Emoji and combining marks"
    },
    {
      "id": "vid-tt-enc-cp1252",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/cues-cp1252.srt",
      "bytes": 342,
      "title": "SRT — Windows-1252 (Legacy Code Page)"
    },
    {
      "id": "vid-tt-enc-no-eol",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/cues-no-trailing-newline.srt",
      "bytes": 351,
      "title": "SRT — No Trailing Newline"
    },
    {
      "id": "vid-tt-enc-mixed-endings",
      "format": "srt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/cues-mixed-endings.srt",
      "bytes": 359,
      "title": "SRT — Mixed CRLF and LF Line Endings"
    },
    {
      "id": "vid-tt-enc-vtt-bom",
      "format": "vtt",
      "subcategory": "captions-encoding",
      "path": "/files/video/captions-encoding/cues-utf8-bom.vtt",
      "bytes": 363,
      "title": "VTT — UTF-8 With BOM Before the Signature"
    },
    {
      "id": "vid-tt-scc",
      "format": "scc",
      "subcategory": "captions-formats",
      "path": "/files/video/captions-formats/broadcast.scc",
      "bytes": 308,
      "title": "SCC — Broadcast CEA-608 Captions"
    },
    {
      "id": "vid-tt-dfxp",
      "format": "dfxp",
      "subcategory": "captions-formats",
      "path": "/files/video/captions-formats/captions.dfxp",
      "bytes": 1030,
      "title": "DFXP — TTML Under Its Other Extension"
    },
    {
      "id": "vid-tt-json",
      "format": "json",
      "subcategory": "captions-formats",
      "path": "/files/video/captions-formats/cues.json",
      "bytes": 876,
      "title": "JSON — Caption Cue List"
    },
    {
      "id": "vid-tt-edge-overlapping",
      "format": "srt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/overlapping.srt",
      "bytes": 182,
      "title": "SRT — Overlapping Cues"
    },
    {
      "id": "vid-tt-edge-out-of-order",
      "format": "srt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/out-of-order.srt",
      "bytes": 198,
      "title": "SRT — Cues Out of Chronological Order"
    },
    {
      "id": "vid-tt-edge-zero-duration",
      "format": "srt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/zero-duration.srt",
      "bytes": 160,
      "title": "SRT — Zero and Near-Zero Duration Cues"
    },
    {
      "id": "vid-tt-edge-long-line",
      "format": "srt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/long-line.srt",
      "bytes": 405,
      "title": "SRT — Over-Long Caption Line"
    },
    {
      "id": "vid-tt-edge-positioned",
      "format": "vtt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/positioned.vtt",
      "bytes": 455,
      "title": "VTT — Positioned and Aligned Cues"
    },
    {
      "id": "vid-tt-edge-styled",
      "format": "vtt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/styled.vtt",
      "bytes": 581,
      "title": "VTT — STYLE Blocks, Regions and Inline Markup"
    },
    {
      "id": "vid-tt-edge-chapters",
      "format": "vtt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/chapters.vtt",
      "bytes": 258,
      "title": "VTT — Chapter Track"
    },
    {
      "id": "vid-tt-edge-metadata",
      "format": "vtt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/metadata.vtt",
      "bytes": 328,
      "title": "VTT — Metadata Track With JSON Payloads"
    },
    {
      "id": "vid-tt-edge-karaoke",
      "format": "ass",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/karaoke.ass",
      "bytes": 893,
      "title": "ASS — Karaoke Timing and Override Tags"
    },
    {
      "id": "vid-tt-edge-stress-500",
      "format": "srt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/stress-500.srt",
      "bytes": 38783,
      "title": "SRT — 500-Cue Throughput File"
    },
    {
      "id": "vid-tt-edge-entities",
      "format": "srt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/entities.srt",
      "bytes": 296,
      "title": "SRT — HTML Entities and Angle Brackets in Cue Text"
    },
    {
      "id": "vid-tt-edge-timestamp-map",
      "format": "vtt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/timestamp-map.vtt",
      "bytes": 216,
      "title": "VTT — X-TIMESTAMP-MAP for HLS Sync"
    },
    {
      "id": "vid-tt-edge-arrow-in-text",
      "format": "srt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/arrow-in-text.srt",
      "bytes": 199,
      "title": "SRT — Cue Text Containing the Timestamp Arrow"
    },
    {
      "id": "vid-tt-edge-speakers",
      "format": "srt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/speakers.srt",
      "bytes": 335,
      "title": "SRT — Speaker Labels and Dialogue Dashes"
    },
    {
      "id": "vid-tt-edge-notes-and-blanks",
      "format": "vtt",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/notes-and-blanks.vtt",
      "bytes": 255,
      "title": "VTT — NOTE Blocks and Irregular Blank Lines"
    },
    {
      "id": "vid-tt-edge-enhanced-lrc",
      "format": "lrc",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/enhanced-lrc.lrc",
      "bytes": 309,
      "title": "LRC — Enhanced Word-Level Timing"
    },
    {
      "id": "vid-tt-edge-imsc-styling",
      "format": "ttml",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/imsc-styling.ttml",
      "bytes": 1186,
      "title": "TTML — IMSC Nested Spans and Regions"
    },
    {
      "id": "vid-tt-edge-frame-timecode",
      "format": "sbv",
      "subcategory": "captions-edge",
      "path": "/files/video/captions-edge/frame-timecode.sbv",
      "bytes": 253,
      "title": "SBV — YouTube Timing Without Cue Indices"
    },
    {
      "id": "vid-tt-bad-no-arrow",
      "format": "srt",
      "subcategory": "captions-corrupt",
      "path": "/files/video/captions-corrupt/no-arrow.srt",
      "bytes": 122,
      "title": "SRT — Intentionally Corrupt: Missing Timestamp Arrow"
    },
    {
      "id": "vid-tt-bad-bad-index",
      "format": "srt",
      "subcategory": "captions-corrupt",
      "path": "/files/video/captions-corrupt/bad-index.srt",
      "bytes": 177,
      "title": "SRT — Intentionally Corrupt: Non-Numeric Cue Index"
    },
    {
      "id": "vid-tt-bad-truncated",
      "format": "srt",
      "subcategory": "captions-corrupt",
      "path": "/files/video/captions-corrupt/truncated.srt",
      "bytes": 133,
      "title": "SRT — Intentionally Corrupt: Truncated Mid-Cue"
    },
    {
      "id": "vid-tt-bad-no-header",
      "format": "vtt",
      "subcategory": "captions-corrupt",
      "path": "/files/video/captions-corrupt/no-header.vtt",
      "bytes": 142,
      "title": "VTT — Intentionally Corrupt: Missing WEBVTT Header"
    },
    {
      "id": "vid-tt-bad-negative-duration",
      "format": "srt",
      "subcategory": "captions-corrupt",
      "path": "/files/video/captions-corrupt/negative-duration.srt",
      "bytes": 127,
      "title": "SRT — Intentionally Corrupt: End Before Start"
    },
    {
      "id": "vid-tt-bad-unclosed-tag",
      "format": "ttml",
      "subcategory": "captions-corrupt",
      "path": "/files/video/captions-corrupt/unclosed-tag.ttml",
      "bytes": 297,
      "title": "TTML — Intentionally Corrupt: Unclosed Element"
    },
    {
      "id": "vid-tt-bad-bad-parity",
      "format": "scc",
      "subcategory": "captions-corrupt",
      "path": "/files/video/captions-corrupt/bad-parity.scc",
      "bytes": 115,
      "title": "SCC — Intentionally Corrupt: Wrong Parity Bytes"
    },
    {
      "id": "vid-tt-bad-mixed-encoding",
      "format": "srt",
      "subcategory": "captions-corrupt",
      "path": "/files/video/captions-corrupt/mixed-encoding.srt",
      "bytes": 125,
      "title": "SRT — Intentionally Corrupt: Invalid UTF-8 Byte Sequence"
    },
    {
      "id": "vid-tt-hls-master",
      "format": "m3u8",
      "subcategory": "stream",
      "path": "/files/stream/hls/master.m3u8",
      "bytes": 667,
      "title": "HLS — Master Playlist With a Three-Rung Ladder"
    },
    {
      "id": "vid-tt-hls-media",
      "format": "m3u8",
      "subcategory": "stream",
      "path": "/files/stream/hls/ladder-360p.m3u8",
      "bytes": 255,
      "title": "HLS — CMAF Media Playlist"
    },
    {
      "id": "vid-tt-hls-byterange",
      "format": "m3u8",
      "subcategory": "stream",
      "path": "/files/stream/hls/byte-range.m3u8",
      "bytes": 305,
      "title": "HLS — Byte-Range Addressed Single File"
    },
    {
      "id": "vid-tt-dash-static",
      "format": "mpd",
      "subcategory": "stream",
      "path": "/files/stream/dash/manifest.mpd",
      "bytes": 1506,
      "title": "DASH — Static MPD With a Segment Template"
    },
    {
      "id": "vid-tt-dash-multiperiod",
      "format": "mpd",
      "subcategory": "stream",
      "path": "/files/stream/dash/multi-period.mpd",
      "bytes": 1523,
      "title": "DASH — Multi-Period Manifest With a Mid-Roll Break"
    },
    {
      "id": "vid-tt-hls-captions",
      "format": "m3u8",
      "subcategory": "stream",
      "path": "/files/stream/hls/captions-en.m3u8",
      "bytes": 205,
      "title": "HLS — Segmented WebVTT Caption Playlist"
    },
    {
      "id": "vid-tt-hls-adbreak",
      "format": "m3u8",
      "subcategory": "stream",
      "path": "/files/stream/hls/ad-break.m3u8",
      "bytes": 394,
      "title": "HLS — Ad Break With Discontinuity Markers"
    },
    {
      "id": "vid-tt-hls-llhls",
      "format": "m3u8",
      "subcategory": "stream",
      "path": "/files/stream/hls/low-latency.m3u8",
      "bytes": 468,
      "title": "HLS — Low-Latency Partial Segments"
    },
    {
      "id": "vid-tt-hls-iframe",
      "format": "m3u8",
      "subcategory": "stream",
      "path": "/files/stream/hls/iframe-trickplay.m3u8",
      "bytes": 320,
      "title": "HLS — I-Frame Only Playlist for Trick Play"
    },
    {
      "id": "vid-tt-dash-seglist",
      "format": "mpd",
      "subcategory": "stream",
      "path": "/files/stream/dash/segment-list.mpd",
      "bytes": 750,
      "title": "DASH — Explicit SegmentList Addressing"
    },
    {
      "id": "vid-tt-dash-live",
      "format": "mpd",
      "subcategory": "stream",
      "path": "/files/stream/dash/live.mpd",
      "bytes": 805,
      "title": "DASH — Dynamic (Live) Manifest With a Time-Shift Buffer"
    },
    {
      "id": "vid-tt-vast-inline",
      "format": "xml",
      "subcategory": "ad-signalling",
      "path": "/files/video/ad-signalling/vast-inline.xml",
      "bytes": 1846,
      "title": "VAST 4.2 — Inline Linear Ad Response"
    },
    {
      "id": "vid-tt-vast-wrapper",
      "format": "xml",
      "subcategory": "ad-signalling",
      "path": "/files/video/ad-signalling/vast-wrapper.xml",
      "bytes": 896,
      "title": "VAST 4.2 — Wrapper (Redirect) Response"
    },
    {
      "id": "vid-tt-vmap",
      "format": "xml",
      "subcategory": "ad-signalling",
      "path": "/files/video/ad-signalling/vmap-schedule.xml",
      "bytes": 1051,
      "title": "VMAP 1.0 — Pre-, Mid- and Post-Roll Schedule"
    },
    {
      "id": "vid-tt-scte-insert",
      "format": "xml",
      "subcategory": "ad-signalling",
      "path": "/files/video/ad-signalling/scte35-splice-insert.xml",
      "bytes": 528,
      "title": "SCTE-35 — Splice Insert (Break Start)"
    },
    {
      "id": "vid-tt-scte-timesignal",
      "format": "xml",
      "subcategory": "ad-signalling",
      "path": "/files/video/ad-signalling/scte35-time-signal.xml",
      "bytes": 801,
      "title": "SCTE-35 — Time Signal With Segmentation Descriptor"
    },
    {
      "id": "vid-tt-vast-noad",
      "format": "xml",
      "subcategory": "ad-signalling",
      "path": "/files/video/ad-signalling/vast-no-ad.xml",
      "bytes": 93,
      "title": "VAST 4.2 — Empty (No Ad) Response"
    },
    {
      "id": "vid-tt-vast-companion",
      "format": "xml",
      "subcategory": "ad-signalling",
      "path": "/files/video/ad-signalling/vast-companion.xml",
      "bytes": 1370,
      "title": "VAST 3.0 — Linear Ad With Companion Banners"
    },
    {
      "id": "vid-tt-scte-breakend",
      "format": "xml",
      "subcategory": "ad-signalling",
      "path": "/files/video/ad-signalling/scte35-break-end.xml",
      "bytes": 472,
      "title": "SCTE-35 — Splice Insert (Break End / Return to Network)"
    },
    {
      "id": "vid-tt-bad-m3u8-header",
      "format": "m3u8",
      "subcategory": "stream-corrupt",
      "path": "/files/video/stream-corrupt/no-extm3u.m3u8",
      "bytes": 139,
      "title": "HLS — Intentionally Corrupt: Missing #EXTM3U Signature"
    },
    {
      "id": "vid-tt-bad-mpd-duration",
      "format": "mpd",
      "subcategory": "stream-corrupt",
      "path": "/files/video/stream-corrupt/bad-duration.mpd",
      "bytes": 514,
      "title": "DASH — Intentionally Corrupt: Malformed ISO 8601 Duration"
    },
    {
      "id": "vid-tt-bad-vtt-timestamp",
      "format": "vtt",
      "subcategory": "stream-corrupt",
      "path": "/files/video/stream-corrupt/bad-timestamp.vtt",
      "bytes": 210,
      "title": "VTT — Intentionally Corrupt: Malformed Cue Timestamp"
    },
    {
      "id": "vid-tt-cue-csv",
      "format": "csv",
      "subcategory": "index",
      "path": "/files/video/index/cue-timings.csv",
      "bytes": 200,
      "title": "CSV — Cue Timing Report"
    }
  ]
}
