VideoText workflow guide

Subtitle Validator — Check SRT & VTT Files for Errors

Validate SRT and VTT files for overlapping timestamps, empty cues, long lines, and reading speed errors. Instant report, free, no upload needed.

What the validator checks in every cue

  • The scan runs in the browser. The file is read locally and never uploaded, so a client deliverable under NDA can be checked without it leaving your machine.
  • The two severities mean different things. Errors are structural — an overlap, an end time at or before its start, an empty cue — and they cause visible failures in players and automated ingest. Warnings are readability thresholds: a line over 42 characters, a cue above 20 characters per second. A file with fifty warnings and no errors is usable.
  • A clean report is a structural clean bill, not a certification. Character encoding, language-specific style rules, and individual platform delivery specifications are outside what a structural scan can see.

Reading the validation report

1. Check the cue count first

The report header states how many cues were parsed. If that number is well below what the file should contain, parsing stopped early — usually a malformed timestamp line or the wrong separator for the detected format — and everything below it describes only the part that parsed.

2. Clear errors before warnings

Each issue is listed against its cue number. Overlaps and reversed timings break playback and ingest, so they come first; long lines and fast reading speed are quality problems that will not stop a file being accepted.

3. Work overlaps from the earliest cue down

Overlaps cascade. One cue extended too far runs into the next, which then runs into the one after it. Fixing the earliest overlap often clears several later reports in one edit, so re-check before working through the list individually.

4. Re-validate after every fix

Timing edits introduce new problems: pulling one cue back can leave the next one too short, and shifting a block can create an overlap further down. Run the scan again on the corrected file rather than assuming the edit was clean.

What each check means, and what triggers it

Overlapping cues

One cue ends after the next one starts, so both are on screen at once. Players resolve this inconsistently — some truncate the first cue, some stack both, some drop one — which is why it is reported as an error rather than a warning.

Reversed and zero-duration timings

An end time earlier than its start, or identical to it. Both are reported together: a zero-duration cue displays for no time at all and is invisible to viewers while still occupying a numbered block in the file.

Empty cues

A numbered block with a valid timestamp pair and no text. These are usually left behind when a line is deleted during editing without removing the block around it.

Lines over 42 characters

Reported as a warning, measured on the longest line in the cue. 42 characters per line is the figure commonly published in Netflix TTSC guidance; the BBC specifies 37, and YouTube publishes no official limit.

Reading speed over 20 characters per second

Characters per second across the display window of the cue. 20 is the default readability check, the same default as the reading-speed checker. 17 and 21 are comparison presets on that checker, not a Netflix, BBC, or EBU certification.

Files that pass this scan and still fail delivery

Correct structure, wrong reading speed for the platform

Every cue sits under the 20-character default and the title needs the stricter 17-character comparison preset. The scan is clean and a tighter brief can still fail — run the reading-speed checker against that preset before handing the file over.

Timing that drifts rather than overlaps

Cues that are individually valid but fall progressively further behind the video. A structural scan has no reference audio, so drift is invisible to it. Check sync by eye at a known point early in the file and again near the end.

Valid structure, broken encoding

A file that parses cleanly but was saved in a non-UTF-8 encoding renders accented and non-Latin characters as garbage after upload. The characters count correctly toward line length, and the structure is valid, so nothing here flags it.

Minimum duration and gaps

This scan does not check for cues that are too brief to read or for sub-frame gaps between adjacent cues. Both matter for broadcast delivery and both need a separate pass — worth knowing before treating a clean report as a full QA.

The thresholds this tool uses, and where platforms differ

42 characters per line

The warning threshold here, matching the characters-per-line figure commonly cited from Netflix TTSC. BBC subtitle guidance specifies 37. Lower your working target if the house style you deliver to is stricter — the validator will not know about it.

20 characters per second

The default readability threshold for the fast-reading warning, shared with the reading-speed checker. 17 and 21 remain comparison presets. The character count includes spaces and punctuation. A line break counts as a space. This is not a platform certification.

How the format is detected

Format is detected from the file contents rather than the extension. SRT expects a sequence number, a comma-separated timestamp pair and one or more text lines per block; VTT expects a WEBVTT header line and period-separated timestamps. A mismatch between the two usually shows up as an unexpectedly low cue count.

What a clean report does not cover

Structural validity says nothing about whether the text is accurate, whether line breaks fall at sensible phrase boundaries, whether positioning metadata survived a conversion, or whether the file meets a specific vendor specification. Treat it as the first gate, not the last.

Subtitle workflow questions answered

What errors does the validator check for?

Overlapping timestamps, end time at or before start time, empty cue text, lines over 42 characters, and reading speed over 20 characters per second. 20 is the default readability check, the same one the reading-speed checker starts on. It is not a Netflix or EBU certification.

What is the reading-speed check?

CPS means characters per second — how fast a viewer must read a subtitle. This validator flags cues above 20. The reading-speed checker can also compare 17 and 21. Those are presets, not a certification, and Fix Subtitles uses the same 20-character default.

What is the maximum line length for subtitles?

Netflix-published TTSC guidelines commonly specify 42 characters per line (CPL). BBC specifies 37 characters. YouTube does not publish an official CPL limit. This tool flags lines over 42 characters as warnings — not official Netflix certification.

What is an overlapping subtitle?

An overlap occurs when one subtitle's end time is later than the next subtitle's start time. Both would show simultaneously, which most players handle by cutting one off or displaying both stacked.

What is a zero-duration cue?

A zero-duration cue has the same start and end time (for example 00:00:01,000 --> 00:00:01,000). It displays for zero seconds and is invisible to viewers. It is usually a transcription or editing error, and it is reported alongside reversed timings.

I have 50 warnings but no errors — is my file usable?

Yes. Warnings indicate best-practice violations (like slightly long lines) but will not cause playback failures. Errors (overlapping timestamps, bad timing) may cause visible issues. Fix errors first; address warnings if the file is for broadcast delivery.

Does a clean validator report mean Netflix will accept my file?

No. A clean report here means common structural issues (overlaps, line lengths, CPS warnings) were not flagged. Netflix and its vendors also check language-specific style guides, encoding, and requirements this tool does not evaluate. VideoText is not affiliated with Netflix.

Is my subtitle file uploaded anywhere?

No. Parsing and validation run entirely in your browser. The file is never sent to a server, which makes the tool usable on client material that cannot leave your machine.

How do I fix the issues found?

Use the free Shift Subtitle Timing tool to adjust timestamps in bulk, or the AI-powered Fix Subtitles tool to automatically correct overlaps, long lines, and timing.

Related caption and subtitle tools