// the find
denizsafak/AutoSubSync
Automatic subtitle synchronization tool.
AutoSubSync is a GUI (and now CLI) wrapper around ffsubsync, autosubsync, and alass that handles the tedious parts of subtitle syncing: file pairing, batch processing, format conversion, and tracking which videos you've already processed. It's aimed at anyone who regularly deals with out-of-sync subtitles — ripped media, foreign downloads, that kind of thing.
1. Three sync backends with fallback: ffsubsync (audio alignment), autosubsync (ML-based), and alass (fast, can use a reference subtitle instead of audio) — if one fails or gives bad results, you can try another without touching the command line. 2. The sync tracking database uses content hashing, not filenames, so it survives reorganizing your media library — a genuinely useful design choice. 3. The CLI (`assy-cli`) is a real, headless-capable interface with JSON output, proper exit codes, and NDJSON batch results — not a bolted-on afterthought. Pipeable into jq and usable in Docker without a display. 4. S01E01/season-episode auto-pairing handles the common TV series case where video and subtitle folders don't have identical filenames.
1. This is fundamentally a UI shell around three other tools — if those upstream tools can't sync a file (bad audio, no speech, corrupt video), AutoSubSync can't either, and there's no obvious fallback or error guidance beyond 'try a different tool'. 2. The alass binary is bundled in the repo (`main/resources/alass-bin/`) for Windows and Linux, but macOS requires a separate `brew install alass` — inconsistent distribution story that will bite users. 3. Qt dependency (PyQt5 or PySide6 based on the compat shim) makes the package heavy for CLI-only use cases; there's no headless install path that skips the GUI dependencies. 4. No subtitle preview or waveform visualization — you sync blind and have to open a media player to verify the result, which breaks the workflow for iterative adjustment.