Scan Subtitles for Structural Problems
Or paste subtitle text
Options
Milliseconds of blank screen allowed between one cue ending and the next beginning. The blank is measured from the furthest end reached so far, not from the cue immediately before it, so a long cue sitting under several short ones does not invent a gap that was never on screen. What the number does depends on the page you are on: closing gaps closes anything wider than it (0 is the usual value and means the two meet exactly), while a check page lists every stretch wider than it and leaves the file alone. Anything at or under the number is left alone either way.
A duration — 1000, 1s, 1.5s and 00:00:01,000 all work. This is the line between a subtitle that lingers long enough to be read and one that flashes past. What happens on the wrong side of it depends on the page you are on: closing gaps holds the short cue on screen for longer, taking the added time out of the gap that follows so no cue ever covers the next one's words (the last cue in the file has nothing after it and simply extends), while a check page lists every cue under the line and leaves the file untouched.
One box, two choices, and each has a page of its own. A cue with no text at all is a subtitle that occupies the timeline while showing nothing — there is no reading of a file where that is right, so the report marks it an error. A cue with no letters is a line that holds something but no words: music notes standing in for a song, a bare number, three dashes. Broadcast captions use those on purpose, so the report marks them for a look rather than a fault, and the measured column shows the characters that are actually there.
Which frame rate the timings are counted in. On the format pages this is what MicroDVD needs, because it stores timing as frame numbers. On the frame rate pages it is the rate the file was timed against — the version the subtitles were made for — and the page's second box takes the rate of the video you are going to use them with. 23.976, 24, 25, 29.97, 30, 50, 59.94 and 60 are the common ones. Getting it wrong shifts the whole timeline, and on the frame rate pages it shifts it by a ratio rather than by a fixed amount.
This is the page to run when you do not yet know what is wrong with a file. It puts a subtitle file through the six structural checks in one pass — overlapping cues, gaps, empty cues, cues with no words, out-of-sequence starts, and durations outside your limits — and returns a single report with one section per check. Every section is printed whether it found anything or not, which is the point: a report that listed only the problems would leave you unable to tell a check that came back clean from a check that never ran.
Each check keeps its own vocabulary. Overlaps are measured in shared milliseconds, gaps in empty milliseconds, durations against the two limits you set, and the two order checks are reported as document-level findings, because a cue that had to be sorted or repaired leaves no trace in the file that a position could be pointed at. The counts do not add up to the number of things wrong with the file, and they are not meant to: one cue can be short, empty and overlapping all at once, and each of those is reported by the check that knows how to describe it. What the report gives you is the shape of the file's problems rather than a total.
The header is part of the answer. It names the file, the format it was read as, how many cues it holds, how many checks ran, and anything the reader had to repair along the way — a timecode that could not be held as written, or cues that had to be moved before the file would stand up. Those repairs are the reason a reorder or a zero-length duration shows up in a findings section without a cue number: the evidence is the repair count, not a cue in the file. Run the specific pages afterwards for anything this scan turns up, since each of them explains one defect in detail and offers the repair that suits it.
Examples
A file with several kinds of trouble
Subtitles
1
00:00:01,000 --> 00:00:03,000
Where were you?
2
00:00:03,500 --> 00:00:04,000
3
00:00:04,500 --> 00:00:09,000
I was working late.
4
00:00:09,300 --> 00:00:12,000
Until when?
What the report finds
Checks run 6
Cues 4
Overlapping cues — 1 found
Gaps between cues — 2 found
Cue duration outside the limit — 1 found
Cues with no words — 1 found
Cues out of sequence — Nothing found
Cues ending before they start — Nothing found
Four cues, four defects, and two of the six sections empty. The empty section on cue order is a result rather than a gap in the report — it is how you know the file was checked for that and came back clean. The empty cue and the short cue are the same cue, counted twice by two rules that describe it differently.
A clean file
Subtitles
1
00:00:01,000 --> 00:00:03,000
Where were you?
2
00:00:03,000 --> 00:00:05,000
I was working late.
What the report finds
Checks run 6
Cues 2
Overlapping cues — Nothing found
Gaps between cues — Nothing found
Cue duration outside the limit — Nothing found
Cues with no words — Nothing found
Cues out of sequence — Nothing found
Cues ending before they start — Nothing found
Six checks, six empty sections. This is the answer the page should give most of the time, and it is the only way to see that nothing found is printed per check rather than once for the file — a single summary line would leave the reader unable to tell which five checks were skipped.
A file the reader had to repair
Subtitles
1
00:00:09,000 --> 00:00:11,000
I was working late.
2
00:00:01,000 --> 00:00:02,000
Where were you?
3
00:00:05,000 --> 00:00:05,000
Until when?
What the report finds
Lost while reading Timing × 1, Cue order × 2
Cues out of sequence — 1 found
Cues ending before they start — 1 found
Gaps between cues — 1 found
Cue duration outside the limit — 1 found
Three cues and three problems, one of which the reader had to fix before anything could be checked. The header records both repairs, and the one millisecond invented for cue 3 comes back in the duration section as a number measured against the one-second minimum — the same defect described from two directions in the same report.
Frequently asked questions
Which checks does this page run on a subtitle file?
Six: overlapping cues, gaps between cues longer than your gap limit, empty cues, cues containing no words, cues whose start times run backwards, and cues whose duration falls outside the minimum and maximum you set. Each one has its own section in the report, printed in the same order every time, and every section appears whether or not it found something.
Why does a clean check still get a section in the report?
Because nothing found and not checked are different answers, and a report that listed only the problems would leave you unable to tell them apart. Six sections means six checks ran; an empty section says that check looked and found nothing, and it is a result you can rely on rather than an absence of information.
Do the section counts add up to the number of problems in my file?
No, and they are not supposed to. One cue can be short, empty and overlapping at the same time, and each of those is reported by the rule that can describe it — so the same cue can appear in three sections. Add nothing up; read down the sections and take each one as its own answer.
What limits do I have to set before running the scan?
Two: the gap limit, the longest pause you are willing to accept, and the minimum cue duration, the shortest a cue may stay on screen. The maximum duration is not required and defaults to seven seconds. All three are printed against each finding they produce, so the report says what it measured against rather than leaving you to remember.
Why do some findings have no cue number or timecode?
Because they are document-level findings. A cue order problem and a repaired zero-length timecode are both produced while the file is being read — the cues have already been sorted or fixed by the time anything can be checked — so the count of repairs is the evidence, and there is no position left in the file that can honestly be called the one at fault.
Should I use this page instead of the individual checks?
Use it to find out what is wrong, then use the individual pages to act. Each of them explains one defect at full length, sets its own limit, and links to the operation that fixes that particular problem. The scan is the entry point rather than a replacement for the six pages behind it.
Which subtitle formats can be scanned?
The ten that store both a start and an end time: SRT, WebVTT, ASS, SSA, SBV, SMI, MicroDVD, TTML, JSON and CSV. LRC and plain text are not accepted, because four of the six checks need an end time and the other two need a cue model — a scan of those formats could only ever return empty sections, which would read as a clean bill of health.
Can I scan a whole series in one run?
Yes. Any number of files can be queued and they are scanned one after another, each with its own report, and the reports download together as a zip. Progress is shown per file, the run can be stopped partway, and no file leaves the browser at any point.