Skip to content
View closed-captioning-pipelines's full-sized avatar

Block or report closed-captioning-pipelines

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse

Broadcast Media Closed Captioning & QC Automation

Broadcast Media Closed Captioning & QC Automation

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


What this is

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.

Why it's useful

  • 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.

The four tracks

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.

Who it's for

  • 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.

How it's built

  • 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.

Local development

npm install
npm start          # serve locally with live reload
npm run build      # build to _site/
npm run deploy     # build + deploy to Cloudflare Pages

Contributing & feedback

Issues 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.

Popular repositories Loading

  1. closed-captioning-pipelines closed-captioning-pipelines Public

    Production-grade reference & tooling for automated broadcast closed-captioning pipelines: SRT/SCC/WebVTT parsing, QC automation, FCC/Ofcom/CRTC compliance, and HLS/DASH/SDI delivery.

    JavaScript