Sync subtitles automatically
Re-time an out-of-sync subtitle — to a video or audio track's speech, or to a reference subtitle you already trust. Free, private, and fast.
Works with your subtitles
Parse and re-emit any of these — and convert between them with the Output format picker.
.srt
WebVTT .vtt
MicroDVD .sub
SubStation Alpha .ass / .ssa
How it works
Subomatic lines your subtitle up with when speech happens — it never reads the words, so it's completely language-agnostic.
Decode
Your media is decoded to audio by the browser itself — the file never leaves the page.
Detect speech
A voice-activity detector finds the spans of time where someone is actually talking.
Align
A dynamic program finds the timing shift (and frame-rate fix) that best overlaps the speech.
Rewrite
Only the timings change. Text, styling and positioning round-trip untouched.
Frequently asked questions
Is anything uploaded? Is it private?
No. Subomatic is a WebAssembly app that runs entirely on your device — your subtitle and media files are never sent anywhere. Once the page has loaded there is no server to talk to.
Which subtitle formats are supported?
SubRip (.srt), WebVTT (.vtt), MicroDVD
(.sub) and SubStation Alpha (.ass /
.ssa). By default the output keeps the input's format,
but you can pick a different one with Output format.
Converting between .srt and .vtt keeps
inline styling; converting to or from .sub/.ass
flattens to plain text.
What's the difference between the two modes?
Video / audio speech listens to the media file, finds when people are talking, and aligns your subtitle to that. Reference subtitle instead copies the timing from another subtitle that's already correctly synced for the same cut of the film — most often one in a different language. It never reads or changes the words in either file; only the timing moves, so the languages don't need to match.
Why did audio mode get the timing wrong on a loud movie?
Make sure Speech detection is set to Accurate. The “Fast” detector keys on loudness, so on music- and effects-heavy films it can mistake the soundtrack for speech and apply a wrong shift. “Accurate” tells real speech apart from the rest and is the default.
It says “decoding audio” for a while — is it stuck?
No. Large videos take time for the browser to decode into audio before syncing can start. The progress bar shows each stage (decoding → detecting speech → aligning); the alignment itself runs off the main thread, so the page stays responsive throughout.
Can it fix frame-rate (PAL speed-up) problems?
Yes. As well as a straight offset, it scans the common play-rate conversions (23.976 / 24 / 25 / 29.97) and corrects the stretch, so a subtitle that slowly drifts out of sync gets fixed too.
What is the “Frame rate” field for?
Only MicroDVD (.sub) files, which store frame numbers
rather than timestamps and so need the video's frame rate to convert
them. Every other format ignores it.
Is there a command-line version?
Yes — the exact same Rust core compiles to a native CLI
(subomatic) that can decode media directly and offers
extra options like piecewise shifts for ad-breaks.
More in the explainer →