Skip to main content
Tech Provider forFree foreverNo credit cardUnlimited DMsNo watermark
Free · Runs in your browser · No upload

Fix out-of-sync subtitles — in your browser.

Open an SRT or WebVTT file to find broken timestamps, overlaps and captions that are too fast to read. Shift the timing, fix drift with two-point sync, preview it over your video, and download a clean file. Your files stay on your device.

What the checker flags

  • Errors: timing lines it cannot read, text with no timing line, cues that end before they start or have zero length, times before 0:00, and a WebVTT file with no WEBVTT header.
  • Warnings: timestamps in the wrong format for SRT or WebVTT, overlapping cues, cues out of order, exact duplicates, empty cues, cues that are on screen too briefly, and captions too fast to read.
  • Notes: broken 1, 2, 3 numbering, lines over the character limit, more than two lines, and cues on screen for a long time.
  • File details: text encoding (UTF-8, UTF-16 or Windows-1252), byte-order mark and Windows or old Mac line endings. The fixed file is always UTF-8 with LF line endings.

Worked example: subtitles drift later and later

Subtitles timed for a 25 fps version play against a 23.976 fps video. Every subtitle time t has to become t × 25 ÷ 23.976, about 4.27% later. At 10 minutes (600 s) the captions show 25.6 seconds early. A shift cannot fix this, because the error is 0 at the start and grows with time.

If you do not know the frame rates, use two-point sync. In this example a line the file places at 00:00:05,000 is spoken at 00:00:06,000, and a line placed at 00:20:00,000 is spoken at 00:20:03,000. The tool fits a straight line through those two pairs and retimes every cue with it:

scale  = (1203.000 − 6.000) ÷ (1200.000 − 5.000) = 1.0016736
new(t) = 6.000 + (t − 5.000) × scale

00:10:00,000  →  00:10:01,996

Worked example: two captions on screen at once

Cue 1 runs 00:00:01,000 → 00:00:03,000 and cue 2 starts at 00:00:02,500. Many players then show both lines stacked. With “Trim overlapping cues” and a 40 ms gap, cue 1 ends at 00:00:02,460. The tool only trims when the cue still has screen time left. If a fix would leave a cue with no time, it reports that cue for you to fix instead.

Supported formats and limitations

  • Input: SubRip (.srt) and WebVTT (.vtt), up to 5 MB, or pasted text. WebVTT cue IDs, cue settings, header, NOTE, STYLE and REGION blocks are kept when exporting WebVTT. SRT cannot retain WebVTT styles, regions, notes or positioning.
  • Not supported: ASS/SSA styling, TTML/DFXP, SCC or burned-in captions inside the video. For those, export SRT or WebVTT from your editor first.
  • Timing fixes are math only. The tool does not listen to the audio, so it cannot find the right offset for you. Load the video in the preview and check by ear.
  • Unreadable cues and unexpected text are listed in the report. Export requires confirmation before excluding those blocks; fix the original text first if it must be retained.
  • Readability thresholds are editorial defaults. Instagram, YouTube and TikTok do not publish caption reading-speed limits for creators.

Questions

›How do I fix subtitles that are out of sync?

First check whether the error is the same everywhere. Compare a line near the start, middle and end. If every line is late by the same amount, shift the whole file by that amount (a negative number makes captions appear earlier). If the error grows through the video, use frame-rate conversion when you know the two frame rates, or two-point sync: give the file time and the real spoken time for one early and one late line.

›Do my subtitle or video files get uploaded?

No. The file is read and repaired by JavaScript in your browser tab. The optional video preview plays from your device with a local object URL. There is no server upload and no account.

›What is the difference between an offset and timing drift?

An offset is a constant delay: every caption is off by, say, 1.5 seconds, so one shift fixes it. Drift grows over time: captions are fine at the start and seconds off by the end. That usually means the subtitles were timed against a version with a different frame rate or speed, and a single shift cannot fix it.

›Why does YouTube or my editor reject my SRT file?

Common causes are timestamps in the wrong format (a dot instead of a comma in SRT, or missing hours), cues that end before they start, text blocks without a timing line, and non-UTF-8 encoding. This tool reports each one by cue and line number and writes a clean UTF-8 file. It cannot tell you about a platform's account-level or language-setting problems.

›Can I convert SRT to WebVTT or WebVTT to SRT?

Yes. Choose the download format. SRT to WebVTT adds the WEBVTT header and uses dot milliseconds. WebVTT to SRT renumbers cues and uses comma milliseconds; WebVTT positioning settings and NOTE or STYLE blocks are dropped because SRT has no equivalent.

›What do the reading-speed and duration warnings mean?

They are readability checks, not file errors. By default the tool flags cues on screen under 0.833 seconds or over 7 seconds, faster than 20 characters per second, longer than 42 characters per line or more than two lines, following Netflix's published English style guide. Short-form social captions are often styled differently, so change the thresholds to match your own style.

›Can I give the report to ChatGPT, Claude or another AI assistant?

Yes. Copy the Markdown or JSON report. It lists the file, what was applied, and every remaining issue with its cue number, so an assistant can suggest line breaks or rewrites without guessing what is in the file.

Sources and related guides

Format rules and style-guide defaults checked November 4, 2026.

About this tool

A free subtitle validator and timing fixer for SubRip (.srt) and WebVTT (.vtt) files. It parses the file in your browser, reports structural errors and readability issues by cue and line number, and applies only the repairs you choose: a constant shift, a frame-rate conversion, two-point linear sync, overlap trimming, and removal of empty and duplicate cues. Then it writes a clean UTF-8 SRT or WebVTT file. Nothing uploads.

Captions fixed? Now grow the reel.

Creator Lane auto-DMs everyone who comments your keyword on a reel: the link, freebie or product. It also tracks every click back to the post. Free, no card.

Official Meta Graph API · Tech Provider · 2-min setup · No credit card