# Subtitle Platform Spec Checker

Validate subtitles against delivery specs: Netflix Timed Text (20/17 CPS reading speed, 42 characters per line, two lines, 5/6-second minimum and 7-second maximum durations, 2-frame gaps), BBC television guidelines (37 characters per line, 160-180 wpm, 1.5-second pause gaps) and YouTube caption rules (plain UTF-8, markup not recognized) — with a per-cue findings report.

> Canonical page: https://elysiatools.com/en/tools/subtitle-platform-spec-checker

- **Category:** Media

- **Keywords:** netflix subtitles, timed text style guide, cps, characters per second, reading speed, bbc subtitle guidelines, youtube captions, srt validator, vtt validator, ttml check, 42 characters, 37 characters, subtitle spec, caption quality, line length, subtitle duration

## Overview

Platform subtitle delivery lives or dies on reading speed and line discipline. The Netflix Timed Text Style Guide allows up to 20 characters per second on adult programs and 17 CPS on children’s programs, 42 characters per line, a maximum of two lines per subtitle event, a minimum duration of 5/6 of a second (20 frames at 24 fps) and a maximum of 7 seconds per event, and requires at least a 2-frame gap between events at any frame rate (their timing guide allows chaining gaps up to exactly 2 frames). The BBC Subtitle Guidelines keep the teletext heritage of 37 fixed-width characters per line and two lines, recommend a reading speed of 160-180 words per minute (about 0.3 seconds of on-screen time per word as a floor) and ask for gaps of a second and a half where speech pauses. YouTube accepts SRT and WebVTT as plain UTF-8 text: style markup like &lt;i&gt;/&lt;b&gt;/&lt;u&gt;/&lt;font&gt; is simply not recognized in SRT and positioning/styling in VTT is limited, so markup is reported as a warning rather than silently lost. This checker parses SRT, WebVTT, SBV and TTML with the shared subtitle engine, measures every cue (characters per line including spaces, lines per cue, CPS = characters ÷ duration, words per minute, durations and inter-cue gaps converted to frames at the frame rate you declare) and grades each violation as fail (hard spec limit) or warn (guideline recommendation), with overlap, negative-duration, empty-cue and non-monotonic structural checks always on. The report card summarises the tightest offenders and lists every finding by cue number, so a file can be fixed against the exact rule before delivery.

## Inputs

- **Subtitle file** (file)
- **Platform profile** (select)
- **Frame rate (fps)** (number): 24

## When to use

- Preparing caption or subtitle deliverables for Netflix, BBC broadcast, or YouTube distribution.
- Checking files for reading speed violations (CPS or WPM) and line character limits before QC sign-off.
- Auditing timed text for structural issues like overlapping timestamps, sub-frame gaps, or unsupported HTML markup.

## How it works

- Upload your subtitle file formatted as SRT, WebVTT, SBV, or TTML.
- Select the target platform profile (Netflix Adult, Netflix Kids, BBC TV, or YouTube) and specify the project frame rate.
- The tool parses each cue, calculating reading speed, characters per line, event durations, and frame gaps between consecutive cues.
- Review an HTML report detailing conformant metrics, overall pass/fail status, and a per-cue log of warnings and hard errors.

## Use cases

- Localization agencies verifying vendor subtitle files against the Netflix Timed Text Style Guide.
- Broadcasters ensuring captions comply with BBC line-length limits and pause gap standards.
- Online video creators cleaning up unsupported italic, bold, or font tags from YouTube SRT files.

## Frequently asked questions

### What file formats does the checker support?

The checker supports SRT, WebVTT (.vtt), SBV, and TTML (.ttml or .xml) subtitle files up to 20 MB.

### How are characters per second (CPS) calculated?

CPS is calculated by dividing total characters, including spaces, by the cue's duration in seconds.

### Why does the frame rate (fps) matter during verification?

The frame rate converts inter-cue gap timings into frame counts to verify platform requirements like Netflix's 2-frame minimum gap.

### What is the difference between a fail and a warn result?

Fail indicates a breach of hard platform constraints, while warn flags guideline recommendations or unparsed formatting tags.

### Does the tool check for overlapping or empty cues?

Yes, core structural checks for overlaps, negative durations, empty text cues, and non-monotonic timestamps run automatically on all profiles.

## Related tools

- [Podcast RSS Enclosure Checker](https://elysiatools.com/en/tools/audio-podcast-rss-enclosure-checker): Validate podcast episode audio against hosting expectations and cross-check it with your RSS feed: enclosure URL / length / type attributes, itunes:duration, GUID uniqueness, RFC 2822 dates, platform codecs and bitrates — byte-exact enclosure lengths included.
- [Accessibility Checker](https://elysiatools.com/en/tools/accessibility-checker): Detect common WCAG 2.1 accessibility issues in HTML, fetched pages, or design images and return fix-ready guidance
- [Subtitle Translation Sheet (CSV Excel)](https://elysiatools.com/en/tools/subtitle-translation-sheet): Round-trip subtitles through the spreadsheets translation teams actually use: export SRT/VTT cues to a CSV or Excel table (index, start, end, source, target, notes) and re-import the filled sheet as translated SRT — timings locked, in-cell line breaks preserved, and semicolon CSV with UTF-8 BOM for European Excel.
- [WebVTT · TTML · SBV · SRT Subtitle Converter](https://elysiatools.com/en/tools/webvtt-ttml-sbv-subtitle-time-axis-and-cue-style-converter): Convert subtitles between WebVTT, TTML (with SMPTE frame timing and styles), YouTube SBV and SRT — frame-precision time axes (23.976/24/25/29.97 drop-frame/30/50/59.94 DF/60), TTML tts styles bridged to WebVTT ::cue CSS, cue-id uniqueness, and IMSC 1.0.1 compatibility checks.
- [CSV / Excel Diff Tool](https://elysiatools.com/en/tools/csv-excel-diff-tool): Compare two CSV or XLSX datasets and export a PDF report with row, column, and cell-level differences
- [SVG Minifier & Analyzer](https://elysiatools.com/en/tools/svg-minifier-analyzer): Analyze SVG markup, remove redundant elements, reduce payload size, compare before and after visually, and export cleaned files
- [Game Save Viewer](https://elysiatools.com/en/tools/game-save-viewer): Drop any game save file — Minecraft NBT, Unreal Engine GVAS, Palworld containers, JSON/XML/INI/Lua text saves, SQLite profiles — and get the detected format, engine versions, key progress fields and a bounded structural tree.
- [QR Code Art, Styled Module and Logo Embed Generator](https://elysiatools.com/en/tools/qr-code-art-styled-module-and-logo-embed-generator): Generate art QR codes with brand colors, gradients, rounded or dot modules and a centered logo, plus the ISO mask-penalty breakdown, per-module metadata export and a Reed–Solomon erasure-budget verdict.

## Samples

- [Text Case Format Samples](https://elysiatools.com/en/samples/text-case-formats): Examples of different text case formats: camelCase, snake_case, kebab-case, PascalCase, and more
- [Windows Serialization - C# Samples](https://elysiatools.com/en/samples/windows-serialization-csharp): Comprehensive C# serialization examples for Windows platform including JSON, XML, binary serialization, and data transformation
- [Nginx Log Parser Samples](https://elysiatools.com/en/samples/nginx-log-samples): Comprehensive Nginx log samples for testing log-parser tool, including access logs and error logs with various formats and scenarios
- [Android Serialization Java Samples](https://elysiatools.com/en/samples/android-serialization-java): Android Java serialization examples including JSON serialization, deserialization, and XML parsing

## Related content

- [Subtitle Translation Sheet Review and Delivery](https://elysiatools.com/en/hubs/subtitle-translation-sheet-review-and-delivery): Export a verified subtitle baseline to CSV or XLSX, coordinate translation review, reconcile imported timings and missing text, and verify selectable subtitle delivery in the target player.
