f

ffsubsync

Language agnostic automatic subtitle synchronization that runs in your browser

Open Source
4.0 (6 reviews)

Gallery

About ffsubsync

ffsubsync is a tool that fixes out of sync subtitles by aligning them to a reference, either another subtitle file, a video file, or an audio track. You give it the broken subtitles and the reference, and it calculates the time shift needed to make them match. The algorithm uses speech detection and Fast Fourier Transform to find the optimal offset, which means it works regardless of language. You can sync English subtitles to a French audio track or align fan subs to an official video without caring about what language anyone is speaking.

The tool started as a command line Python project and won an honorable mention at HackIllinois 2019. Since then it has grown to over seven thousand stars on GitHub and become the go to open source solution for subtitle alignment. The browser version, hosted at smacke.net/ffsubsync, compiles the Python code to WebAssembly via Pyodide and runs entirely on your machine. Nothing is uploaded. You pick your files, wait for the processing, and download the fixed subtitles. For people who do not want to install Python or run terminal commands, this is the easiest way in.

The supported formats include SRT, ASS, and SSA, which covers the vast majority of subtitle files you will encounter. Advanced options let you correct framerate mismatches, handle mid file timing breaks, and use golden section search for tricky alignments. If you are syncing a rip where the video was sped up or the subtitles came from a different cut, these options help the algorithm find the right fit.

Audio decoding in the browser uses ffmpeg.wasm, which means you can sync against video files without extracting the audio track first. For command line users, the Python package supports remote files over HTTP, RTMP, RTSP, and FTP, which is useful for batch processing or automating workflows. Legacy character encodings are handled automatically, so you do not need to convert files to UTF 8 before processing.

The use case is straightforward. You downloaded a movie and the subtitles do not line up. Maybe they are three seconds off throughout, or maybe they drift over time because of a framerate mismatch. Either way, you drop the files into ffsubsync and get a synced version back. Media archivists, torrent communities, and anyone who deals with mismatched subtitles regularly will find this useful.

The project is open source under the MIT license, which means you can use it for personal or commercial purposes without restriction. The browser version is free to use with no signup. If you want to run it locally or integrate it into your own tooling, the Python package is available via pip. The creator, smacke, maintains the project on GitHub.

Key Features

  • Language agnostic subtitle alignment
  • Browser based processing via WebAssembly
  • Support for SRT, ASS, and SSA formats
  • Framerate correction and golden section search
  • No file uploads required
  • Command line and remote file support

Pros & Cons

What we like

  • Runs entirely in browser with no server uploads
  • Works regardless of subtitle or audio language
  • Open source under MIT license
  • Handles legacy character encodings automatically

Room for improvement

  • Browser version slower than native Python on large files
  • Requires basic understanding of subtitle formats
  • No graphical preview of sync quality
  • Complex drift issues may need multiple attempts

Frequently Asked Questions

What is ffsubsync?
ffsubsync is a tool that automatically aligns subtitles with video or audio files. It detects speech in both the subtitle and the reference, then calculates the time offset needed to sync them.
Does ffsubsync upload my files?
No. The browser version runs entirely on your machine using WebAssembly. Nothing is uploaded to any server. Your files stay local throughout the process.
Is ffsubsync free?
Yes. It is open source under the MIT license. The browser version is free to use, and the Python package is free to install and run locally.
What subtitle formats does ffsubsync support?
It supports SRT, ASS, and SSA formats, which covers the vast majority of subtitle files. Legacy character encodings are handled automatically.

Best For

Fixing out of sync downloaded subtitlesAligning fan subs to official video releasesSyncing subtitles across different cuts of a filmBatch processing subtitle libraries via command line

Featured in

Alternatives to ffsubsync

View all

Reviews (6)

A
Anders Meyer Verified

Two months in, no regrets

Found ffsubsync on a Show HN thread and I am glad I clicked. Their take on handles legacy character encodings automatically is genuinely good. It slotted into my routine without much fuss. Worth it for what I get out of it.

5/14/2026 15 found this helpful
M
Morgan Ramirez Verified

Does the job, a few gripes

Three months of ffsubsync later, here is what holds up. The open source under mit license is more useful than I expected. It just works, day after day, without surprises. Mostly using it for syncing subtitles across different cuts of a film. It would be a five if not for complex drift issues may need multiple attempts. Glad I made the switch.

4/17/2026 15 found this helpful
N
Nikolai Kobayashi Verified

Worth a look

Started using ffsubsync casually, now it is pinned in my dock. Their take on no file uploads required is genuinely good. The defaults are sensible, so I was not fighting settings on day one. No regrets so far.

6/26/2026 14 found this helpful
A
Anders Okafor

Solid daily driver

Tried ffsubsync on a side project first, then rolled it out everywhere. It just works, day after day, without surprises. Glad I made the switch.

5/4/2026 14 found this helpful
T
Tao Sun Verified

Quietly excellent

Tried ffsubsync on a side project first, then rolled it out everywhere. What stands out is how it handles browser based processing via webassembly. It fits well for syncing subtitles across different cuts of a film. Glad I made the switch.

6/19/2026 13 found this helpful
S
Sebastian Gupta Verified

Powerful once it clicks

Found ffsubsync on a Show HN thread and I am glad I clicked. The works regardless of subtitle or audio language is more useful than I expected. It fits well for aligning fan subs to official video releases. My only gripe is requires basic understanding of subtitle formats. Easy yes for anyone weighing the same trade offs.

4/2/2026 10 found this helpful