Check an SRT file for format errors — numbering, timestamps, overlaps and encoding — and auto-fix them, then download a clean .srt.
AI-powered audio review & delivery for voice production teams
What this checks
Sequential numbering, the HH:MM:SS,mmm --> HH:MM:SS,mmm timestamp format,
start-before-end, chronological order, overlaps, empty cues, blank-line separation and encoding (BOM, line endings).
Paste or load an .srt file to check it.
SubRip (.srt) is the most widely used subtitle format, and its structure is strict and repetitive. Each subtitle is one cue, and every cue has the same four parts in the same order:
1 and increases by one for every cue.HH:MM:SS,mmm --> HH:MM:SS,mmm (hours, minutes, seconds, then a comma and three-digit milliseconds, an arrow, and the end time in the same form).A single valid cue looks like this:
1
00:00:01,000 --> 00:00:03,500
This is the first subtitle.
Because the format is so rigid, small mistakes break it. These are the problems this validator looks for, and how serious each one is:
| Problem | Why it matters | Severity |
|---|---|---|
Milliseconds after a dot (00:00:01.000) |
SRT requires a comma; strict players reject the cue | Error |
| Start time not before the end time | The cue has no positive duration | Error |
Missing or malformed --> timing line |
The cue can't be placed on the timeline | Error |
| Numbering that skips, repeats or is out of order | Strict parsers key on the sequence | Warning |
| Cues that overlap or run out of order | Two captions fight for the screen | Warning |
| A leftover UTF-8 BOM or Windows line endings | Can corrupt the first cue or confuse a parser | Info |
Not every problem is fatal. An error means the file is genuinely broken and a player may refuse it or skip a cue — a missing arrow, a reversed timestamp, a comma turned into a dot. A warning means the file is technically valid but problematic: numbering that is out of sequence, cues that overlap or run out of order, an empty cue. Info notes are purely cosmetic — a byte-order mark, Windows line endings, extra blank lines — and most players ignore them, but the cleanest file has none of them.
An SRT file is plain text and should be saved as UTF-8 so accented characters, non-Latin scripts and emoji survive. A common gotcha is a UTF-8 BOM (byte-order mark) written invisibly at the very start of the file: it can attach itself to the first index number so the first cue silently fails to parse. Mixed or Windows (CRLF) line endings are usually harmless but untidy. This tool flags all of these and, when you auto-fix, strips the BOM and normalizes everything to UTF-8 with LF line endings.
An SRT (SubRip Subtitle) file is a plain-text file that holds the subtitles or captions for a video. It is a numbered list of timed cues: each cue has an index number, a start and end timestamp, and the lines of text to show on screen. Because it is just text, you can open an .srt in any editor — and just as easily break its formatting by hand.
Every cue is four parts in order: an index number, a timing line HH:MM:SS,mmm --> HH:MM:SS,mmm, one or more lines of text, then a blank line. For example:
1
00:00:01,000 --> 00:00:03,500
This is the first subtitle.
2
00:00:03,600 --> 00:00:06,000
And this is the second.
Numbers run sequentially from 1, every start time is before its end time, and the milliseconds follow a comma, not a dot.
Usually because something in the structure is off. The most common causes are a timestamp that uses a dot instead of a comma before the milliseconds, a missing or malformed --> line, a start time that comes after the end time, or an invisible byte-order mark glued to the first cue. Paste the file above and the validator will point to the exact cue and line so you can see what a player is choking on.
SRT timestamps are written HH:MM:SS,mmm — two-digit hours, minutes and seconds, then a comma and three digits of milliseconds. A cue's timing line is two of them joined by an arrow: 00:00:01,000 --> 00:00:03,500. The comma is the part people most often get wrong; WebVTT uses a dot there, but SubRip does not.
An overlap means one cue starts before the previous cue has ended, so two captions try to show at once. The validator flags every overlap, and the auto-fixer trims the earlier cue's end time back to the moment the next cue begins — without touching either cue's text. Tick Trim overlapping cues, click auto-fix and download the clean file.
Captions early or late? Shift or stretch every timestamp to line up with your video.
Need WebVTT for HTML5 video? Convert your clean .srt to a valid .vtt in the browser.
Check captions against Premiere's character-limit and reading-speed (CPS) rules.
VoiceDeck adds AI-powered audio & video review and delivery for your whole team — so every file ships in spec, automatically.