SRT fixer: repair subtitle files automatically
In short: Subtidy is a free SRT fixer that runs in your browser. It does not just list problems, it changes the file: it closes overlaps, keeps a gap between cues, rebalances long lines, splits cues that need too many lines, and gives fast or short cues more time from the free space around them. Then it checks the file again and shows what it fixed and what still needs a person. It never rewrites your words, and nothing is uploaded.
What does an SRT fixer repair?
Two kinds of problem stop a subtitle file from passing. Problems with the file itself can make players and editing apps misread it. Problems against the delivery rules make it fail QC. Subtidy repairs both kinds in one pass, in SRT, WebVTT and ASS files.
Problems with the file
| Problem | What Subtidy does |
|---|---|
| Cues out of order | Sorts every cue by its start time. |
| Missing, repeated or wrong cue numbers | Numbers the cues again from 1. |
Timestamps written with a dot, like 00:00:04.000 | Reads them and writes standard SRT timestamps with a comma. |
| No blank line between two cues | Separates them. |
| Empty cues | Removes them. |
| An out time earlier than its in time | Moves the out time so the cue has a valid duration, long enough to read where the following free time allows. |
| Double spaces and spaces at the ends of lines | Removes them. |
| Text saved as UTF-16 or Windows-1252 | Reads it and saves UTF-8, with a byte order mark when the text has characters beyond basic English, which helps Premiere Pro detect the encoding. |
Problems against the delivery rules
Each preset sets the limits. Streaming matches the limits Netflix publishes for English subtitles on adult programmes, and Broadcast uses the 37 character line of BBC broadcast subtitles. Subtidy is not affiliated with Netflix or the BBC.
| Problem | Limit (Streaming, Broadcast, Social vertical) | What Subtidy does |
|---|---|---|
| Line too long | 42, 37, 28 characters | Rewraps the cue into as few lines as fit, keeping the lines close in length and preferring breaks after punctuation, including Urdu and Arabic punctuation. |
| Too many lines | 2 lines | Splits the cue into consecutive subtitles and shares its time by the length of each part. |
| Overlaps the next cue | 83, 120, 40 ms gap | Ends the cue that gap before the next one starts. No text is removed. |
| No gap before the next cue | 83, 120, 40 ms gap | Shortens the cue so the gap is kept. |
| Reads too fast | 20, 15, 17 characters per second | Extends the cue into the free time after it. If that is not enough, starts it up to 300 ms earlier when there is free time before it. |
| On screen too briefly | 0.83, 1, 0.7 s | Extends it the same way. |
| On screen too long | 7, 6, 4 s | Ends it at the maximum. |
Two optional fixes are off until you turn them on: removing [MUSIC] style tags, sounds in brackets such as (laughs), music notes and uppercase speaker names, and removing italics and other styling tags. Cues left empty are removed. Two-speaker lines that start with a dash are kept as they are when they already fit.
Custom limits for a client's own spec are part of Subtidy Pro. More on each rule: line length, reading speed, overlaps and gaps.
What is the difference between a subtitle checker and a fixer?
A checker, or validator, reads the file and lists every cue that breaks a rule. You then open your editor and correct each one by hand. A fixer changes the file so the cues pass, and then checks it again. Both are useful, but on a long file one leaves you a list of edits and the other has already made most of them.
Some tools sold as fixers only repair the file structure, such as numbering, timestamps and empty cues. Repairing the delivery rules means changing timing and line breaks, and that is the part that takes time by hand.
| Problem | A checker | Subtidy |
|---|---|---|
| A line is 84 characters long | Flags the cue. | Rewraps it into two balanced lines. |
| A cue needs three lines | Flags the cue. | Splits it into two subtitles and shares out the time. |
| Two cues overlap by 300 ms | Flags both cues. | Ends the first one a gap before the second starts. |
| A cue reads at 23 characters per second | Shows the speed. | Gives it more time from the free space around it. |
| A cue stays up for 9 seconds | Flags the cue. | Ends it at the maximum duration. |
| Cues are numbered 1, 2, 2, 4 | Flags the numbering. | Numbers them 1 to 4. |
Subtidy is both: every file gets a quality check with the number of cues failing each rule before and after the fix.
What does a fixed file look like?
The quality check finds eight rule problems in this short SRT: two lines that are too long, two cues that read too fast, an overlap, a missing gap, a cue on screen for 0.3 seconds and one on screen for 9 seconds. The file also repeats a cue number and writes one timestamp with a dot.
1
00:00:01,000 --> 00:00:03,000
Welcome back. Today we're looking at why most subtitle files fail quality control.
2
00:00:02,900 --> 00:00:04,000
It's simple.
2
00:00:04.000 --> 00:00:04,300
Really.
4
00:00:05,000 --> 00:00:14,000
Line lengths, reading speed and timing gaps.
With the Streaming preset, Subtidy returns this:
1
00:00:00,700 --> 00:00:02,817
Welcome back. Today we're looking at why
most subtitle files fail quality control.
2
00:00:02,900 --> 00:00:03,917
It's simple.
3
00:00:04,000 --> 00:00:04,830
Really.
4
00:00:05,000 --> 00:00:12,000
Line lengths, reading
speed and timing gaps.
- Cue 1 is rewrapped into two lines and now ends 83 ms before cue 2, so the overlap is gone. It starts 300 ms earlier to win back some reading time.
- Cue 2 ends 83 ms before cue 3, so there is a gap.
- Cue 3 is extended to the 0.83 second minimum, and its timestamp is written the standard way.
- Cue 4 is capped at 7 seconds and its 44 character line is rewrapped.
- The cues are numbered 1 to 4.
The quality check reports 7 problems fixed and 1 cue that needs a look. Cue 1 still reads at 38 characters per second: 81 characters cannot be read in 2.1 seconds, and there is no free time left to borrow. That cue needs shorter text, which is an editor's decision, so Subtidy leaves it flagged instead of guessing.
What can an automatic fixer not do?
Anything that needs judgement, the picture or the sound. Plan a human pass for these, and see the subtitle QC checklist for the full list.
- Shorten text. Subtidy never rewrites or condenses your words. Cues that still read too fast after the timing fixes stay flagged.
- Sync to speech. Subtidy works from the timestamps in the file and does not listen to the audio. Netflix asks for in times on the first frame of speech or within one or two frames of it, and Subtidy can start a cue up to 300 ms early to make room, so check the cues marked Edited if your spec is strict.
- Follow shot changes. It cannot see the picture, so it does not move cues to shot changes.
- Close short gaps. It keeps a minimum gap but does not close short gaps between subtitles, sometimes called chaining. Netflix asks for gaps of 3 to 11 frames at 24 fps to be closed to 2.
- Break lines by meaning. It balances line lengths and prefers punctuation, but it does not analyse grammar, so it can split a phrase. Skim the edited cues.
- Check spelling, names and translation.
- Remove repeated lines in YouTube auto-captions. It separates their timings, but each line still appears twice.
- Read every encoding. Files in other legacy encodings, such as Windows-1251 for Cyrillic, are not detected, and the text comes out garbled. Save them as UTF-8 first.
- Keep ASS styling. From an ASS file it reads the text and timing only. Styles, positions and override tags are not kept, and ASS exports use one default style.
How to fix an SRT file in Subtidy
- Open your SRT, WebVTT or ASS file, drop it anywhere on the page, or paste the text. It is processed in your browser.
- Pick the preset closest to your spec: Streaming, Broadcast or Social vertical.
- Leave the fixes on. Rebalance line breaks, Split overfull cues and Fix overlaps and reading time are on by default. Turn on Remove [MUSIC] tags and speaker names or Remove italics and styling if you need them.
- Read the quality check: how many cues fail each rule before and after. Turn on Only problems in the cue list to see what is left, and switch between Fixed and Original to compare.
- Download the fixed file. Free saves it as SRT, with
_cleanadded to the file name.
Is the SRT fixer free?
Yes. Every automatic fix, the three presets, the 16:9 title safe preview, the full quality check and SRT export are free, one file at a time, with no account. Subtidy Pro, $5 a month or $39 a year, adds batch fixing for a whole series with a zip download, custom limits, the 9:16 safe-zone check, WebVTT, ASS and transcript export, frame rate conversion and timing shift.
Is my subtitle file uploaded?
No. The file is read and fixed inside your browser and never sent to a server, so client subtitles stay on your machine.
Fix your subtitle file now
Open an SRT, WebVTT or ASS file. Free for one file at a time, with SRT export. Nothing is uploaded.
Sources
- Netflix Partner Help Center, English (USA) Timed Text Style Guide, updated 19 December 2025.
- Netflix Partner Help Center, Timed Text Style Guide: Subtitle Timing Guidelines, updated 4 July 2025.
- BBC, Subtitle Guidelines, version 1.2.5, March 2026.