A production-grade engineering reference for building automated closed-captioning pipelines — parsing, validation, compliance, and delivery — with real Python you can lift straight into a validator, packager, or scheduled QC job.
🌐 Live site: www.closed-captioning.org
closed-captioning.org is a deep, working reference for the people who ship captions for a living: broadcast engineers, captioning vendors, media-tech developers, and Python automation builders. Every article is grounded in the real specifications that govern caption delivery — FCC 47 CFR § 79.1, the SMPTE ST 334 / ST 12-1 families, CEA-608 / CTA-708, the W3C WebVTT and IMSC1/TTML profiles, and the Ofcom and CRTC codes — and pairs each rule with a minimal, syntactically valid Python implementation that enforces it.
No half-explained snippets. No stock filler. Just frame-accurate timing arithmetic, stateful decoders, and the exact numeric thresholds a compliance audit checks for, mapped back to the clause that creates the constraint.
- Code-first. Every technique leads with a complete, runnable Python block using real libraries (
pysrt,pycaption,webvtt-py,lxml,numpy,pyarrow,charset_normalizer,ffmpeg) — not pseudocode. - Clause-mapped. Inline comments cite the regulation or standard each threshold enforces, so the "why" is never separated from the "how."
- Whole-pipeline. Coverage runs end to end: ingest → parse → normalize → validate → mux → package → deliver → playout, plus the QC and reporting layer that gates every step.
- Audit-ready. Structured JSON/Parquet telemetry patterns turn every caption defect into machine-readable evidence tied to the clause it breaches.
| Track | What it covers |
|---|---|
| 🧩 Broadcast Architecture & Compliance | Format topology, FCC / Ofcom / CRTC thresholds, secure pipeline design, and format-selection decision guides. |
| 🔀 SRT, SCC & WebVTT Parsing Workflows | Stateful CEA-608 decoding, timestamp normalization, charset detection, and async batch processing at archive scale. |
| ✅ Automated QC Validation & Reporting | Sync-drift detection, CI/CD gating, character-rate enforcement, regression testing, and deterministic compliance reporting. |
| 📦 Caption Muxing, Packaging & Delivery | Embedding CEA-608/708 in transport streams, IMSC1/TTML packaging, HLS/DASH delivery, and SDI VANC insertion. |
Across those tracks the site holds 50+ interlinked articles, each with hand-authored, theme-aware SVG diagrams, structured data, and a tight internal link graph so any technique is a click or two from the standard it implements.
- Broadcast engineers wiring captions into SDI, ATSC, and OTT delivery.
- Captioning vendors who need deterministic, audit-defensible QC.
- Media-tech and Python developers automating caption parsing, validation, and packaging.
- Compliance teams reconciling FCC, Ofcom, CRTC, and EBU obligations across territories.
- Eleventy static-site generator (Nunjucks + Markdown).
- Hand-authored inline SVG diagrams; no runtime chart or diagram libraries.
- Centralized JSON-LD (
Organization,WebSite,TechArticle,BreadcrumbList,HowTo,FAQPage) and Open Graph metadata. - Deployed to Cloudflare Pages.
npm install
npm start # serve locally with live reload
npm run build # build to _site/
npm run deploy # build + deploy to Cloudflare PagesIssues and suggestions are welcome — corrections to a threshold, a clause reference, or a code sample are especially valuable. Open an issue on the GitHub repository.
Built and maintained by closed-captioning-pipelines · explore the full reference at www.closed-captioning.org.
