The limits that get files sent back

Subtitle files rarely fail on the words. They fail on the shape of the text and the shape of the timings, and the rules are written down, which means the failures are predictable:

  • Reading speed — how many characters a viewer has to read per second. Too fast and nobody finishes the line before it disappears.
  • Characters per line — a line that runs past the safe width gets cut off or wraps unexpectedly on the player's own layout.
  • Lines per cue — most delivery specifications allow two lines and no more.
  • Overlapping cues — two cues on screen at once, which shows as stacked text in every player that does not merge them.
  • Gaps — a pause shorter than the minimum between cues leaves no time to read what came before.
  • Cue duration — a cue that flashes for a fraction of a second, or one that hangs on screen for several, is rejected on sight.
  • Invisible characters — zero-width spaces and non-breaking spaces that some players draw as a box.

Where the numbers come from

Four profiles are built in, and each one is a published set of limits rather than a guess:

  • Netflix — English (USA) — 42 characters per line, two lines, and up to 20 characters per second for adult programmes and 17 for children's content.
  • Netflix — other languages — the same line limits with lower reading speeds, 17 characters per second for adult programmes and 13 for children's.
  • YouTube — roughly 18 characters per second, 42 characters per line and two lines.
  • Broadcast (EBU R133) — around 15 characters per second with lines close to 37 characters, which is the stricter European practice.

A Custom limits option is there for a house style or a client specification of your own. The profile you pick changes what counts as an error and what counts as a warning, and nothing else about the file.

Reading speed, measured properly

The speed figure is every visible character in the cue, spaces included, divided by the length of the cue in seconds. Markup tags are stripped before the count, so a line carrying styling does not count towards the speed, and a tag left in by mistake does not silently make the cue look fast.

Cue length is measured from the start timestamp to the end timestamp. A cue that is shown for three seconds and holds sixty characters reads at 20 characters per second, which is the limit for adult English and over it for everything else.

How to use it

  1. Open an .srt or .vtt file, or paste the text. The Load sample button fills the panel with a file that trips most of the checks.
  2. Pick the profile that matches where the subtitles are going. If you do not know, the Netflix English profile is the strictest of the common ones.
  3. Read the Findings list. Each entry names the cue, says what is wrong and gives the measured value against the limit.
  4. Read the Cues table for the per-cue numbers: timings, duration, characters per second, the longest line and the number of lines.
  5. Use Clean whitespace for the text problems. It strips trailing spaces, collapses double spaces, removes zero-width characters, turns non-breaking spaces into ordinary ones and tidies blank lines. It never rewrites a word and never moves a timestamp.
  6. Copy the report or download it as Markdown to attach to the delivery.

Good to know

  • Both SubRip and WebVTT are read, including cue identifiers, cue settings, the WEBVTT header and the NOTE, STYLE and REGION blocks.
  • The file is never uploaded, so an unreleased film script can be checked before anyone else sees it.
  • The tool checks the file on its own terms. Without the video it cannot tell whether a cue is timed to the dialogue or to a shot change, and it does not pretend to.
  • A cue over the speed limit is an error only when it is well over; a slightly fast cue is a warning. Both are listed, and the report separates them.
  • Cleaning whitespace is safe and reversible. If the original spacing carries meaning, such as a deliberate pause marker, keep a copy before you run it.
  • The text itself is worth reading once by eye. The Word Counter gives you the length of the dialogue if you want to see how much text a cue is carrying, and the Text Cleanup tool handles stray whitespace outside the subtitle file itself.