Neatbo.

Subtitle quality report

Find fast, crowded or overlapping subtitle cues using your own readable-text rules.

Browser-local processingInputSRT / WebVTTOutputCue JSON / CSV reportUp to 10 MiB per file · File limit: 1
  1. 1Add input
  2. 2Adjust settings
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run

or drag and drop it here

Files stay on this device. Your originals stay unchanged.

.srt · .vtt · .txt

Up to 10 MiB per file · File limit: 1

    0 characters · 0 bytes
    Options

    Complete the required options first. You can keep the defaults for the rest.

    Preparing the tool…

    Before you start

    Review SRT or WebVTT cue durations, Unicode codepoint lengths, reading speeds and timing gaps. Supported formatting is excluded from the counts. Download the complete per-cue JSON and CSV report without changing the subtitles.

    How to use this tool

    1. Choose an SRT or WebVTT file, or paste its text.
    2. Set your reading speed, line, duration, gap and overlap rules.
    3. Review cue IDs, codepoint counts and issue codes; download the complete reports. The table previews up to 200 cues.

    Supported inputs and limits

    One UTF-8 subtitle file up to 10 MiB or pasted text up to 1 MiB; up to 10,000 cues and 100,000 overlap pairs. Counts include spaces and exclude formatting and line breaks; emoji and Chinese characters count by Unicode codepoint, rather than grapheme or word.

    Paired b/i/u tags, SRT font color tags and WebVTT c.class tags are supported. Common amp/lt/gt/nbsp/lrm/rlm and valid numeric entities are decoded for counting. Unknown or mismatched markup, cue settings, NOTE, STYLE and REGION are rejected. HTML is never rendered. Rules are your own thresholds, not platform certification.

    Worked example

    Example input

    1\n00:00:01,000 --> 00:00:02,000\n<b>Hello</b>\n\n2\n00:00:01,500 --> 00:00:02,500\n<i>合同😀</i>\n\n3\n00:00:02,550 --> 00:00:04,550\nFine\n
    Example options
    {"maxCps":4}

    Example output

    3 cues; 3 cues with issues; 1 overlap pair. Visible counts are 5, 3 and 4 codepoints.

    When something does not work

    Correct malformed timings or use supported paired formatting, then run again. If a valid cue is flagged, adjust your delivery thresholds. No report is a promise that a player or client accepts the subtitles.

    Frequently asked questions

    Are formatting tags counted?

    Supported tags are stripped from visible counts. For example, <b>Hello</b> counts as five codepoints. Unknown tags fail explicitly.

    Does an overlap report change my subtitles?

    No. It identifies overlapping cue pairs, unsorted starts and short gaps. Your original timings and text remain intact.

    Is this a streaming platform validator?

    No. Set the thresholds required for your delivery and check playback yourself. Counts use codepoints, including spaces.

    Documentation & further reading

    Related tools