Subsync is a stellar program that should have an active maintainer
Subsync is a program that will sync any subtitle file based on either audio or another subtitle. It is remarkably good at syncing any subtitle you throw at it. I never encountered anything even remotely as good as Subsync for that task.
Unfortunately, the author archived it due to some technical reasons as well as bad interactions with users. I don't believe there is anything as good out there when it comes to syncing broken subtitles. Subsync still works, but I don't know for how long. I am not a programmer. I am posting this as a call for help: if anyone is interested in maintaining this program, I think it would be of great help to a lot of people.
Right now, Subsync is a manual tool with a graphical interface. But I foresee it working in the background with programs like VLC, Plex, or Stremio. That would be awesome.
EDIT
Subsync is automated and language aware. It will sync individual lines using audio or another subtitle as a reference. It won't just shift everything; it will adjust them individually. It is usually not necessary to go through the entire file, but you can do it for badly synced subtitles. Adjusting every single subtitle will take more time, but you can do it.
Merely shifting all the subtitles won't work for older TV shows because of the breaks. Depending on the version (DVD, Blu-Ray, WEB, or recorded directly from TV), the ad breaks will be edited slightly differently, with different delay times before resuming the show. That is enough for the subtitles to lose sync after every act. There is also the issue of frame rate and perhaps other video features, which I believe can also unsync subtitles. I probably have more issues with subtitles than most because I mostly watch older or classic TV content.
(Adapted for clarification from my response below)
My time's a little limited, but I'll be able to contribute to open source projects again soon-ish. From looking at the repo, a reasonably quick contribution could be containerizing the build system + cleaning it up a little. Doing so while preserving my sanity would probably mean focusing on generating binaries for Linux alone, which seems modestly doable in 2025 (Windows and macOS seem to provide support for launching them, with varying degrees of pain).
^ would that be helpful, do you figure? I've never used subsync before, so I don't know if -- for example -- the target userbase wouldn't be able to jump through the necessary hoops to get that working.
(edit) For context, the architecture doc is a decent overview of what the project is. In effect, it's an early ML voice recognition library (pocketsphinx) bolted onto a subtitle reader which attempts to heuristically line them up. Not really rocket science these days either. Tbh a ground up rewrite might be faster than saving the existing project, but it'd lose the name recognition.
How does it compare to Subtitle Edit?
In my experience most subtitles are simply time-shifted and can be adjusted via keyboard shortcuts. For example, in mpv:
If you're dealing with different fps like PAL subtitles on NTSC, this can often help:
I empathize with you. It's difficult to see software that you rely on stop being maintained. Given the nature of the tool, it will probably keep working for a long time without any changes. But it looks like there are also a lot of other options too.
Subsync is another kind of program. It is automated and language aware. It will sync individual lines using audio or another subtitle as a reference. It won't just shift everything; it will adjust them individually. It is usually not necessary to adjust every line, but you can do it if you want, and that is sometimes necessary for badly synced subtitles. Adjusting every single subtitle will take more time, but you can do it.
That won't work for TV shows because of the breaks. Depending on the version (DVD, Blu-Ray, WEB, or recorded directly from TV), the ad breaks will be edited slightly differently, with different delay times before resuming the show. That is enough for the subtitles to lose sync after every act. There is also the issue of frame rate and perhaps other video features, which I believe can also unsync subtitles.
I probably have more issues with subtitles than most because I mostly watch older or classic TV content.
EDIT: I adapted this comment into the main post.
EDIT2: Thanks!
I've used Subsync for, I don't know, a decade or something, and was really bummed to hear it was not being supported anymore. As you say, for now it still works, but it's just a matter of time, probably. I'm definitely not the one to take it up, though. I have the source code, and might be able to keep it running in python, but I have no idea. We'll see.
One thing, though, I'm not sure it adjusts every subtitle independently. If you look at what it's doing during the process, it shows something like (<number>x+<number>). For me this means that it's just a linear transformation i.e.: stretch and shift (so definitely more than just shift), which is usually enough but doesn't work for every subtitle.
I haven't tried it yet, but in terms of functionality, the following comes close:
https://github.com/smacke/ffsubsync
No gui, though, so there is some technical skill required.
any chance you watch a rip of SNL using Kodi? The subs are always out of sync and I never know why. I tried to fix it with this, but no dice.
No, unfortunately. But if there are commercials that have been cut out, and there are different rips around, that cut out the commercials with slightly different timestamps, such a linear transformation will not do the trick if you have the subs for a different rip.
it’s weird because it isn’t off like that, it’s a gradual drift. i see it some up every so often and some say it’s an issue with the mkv container — but i don’t see why.
i need to properly fix an episode one to know for sure. :)
I think you're right. It does seem to shift in a way that will make the most lines sync or get close it. Which is often good enough but not always.
I think the ffsubsync above is the tool Bazarr uses built-in. In case you aren't familiar, Bazarr is very handy for subtitle management. You can set it to sync subtitles after it downloads/imports them, I forget if it is on by default. But it can also run a custom command per file after it imports, if Subsync supports CLI, it could be used instead. I call a python script to clean the text up.
I wouldn't recommend using Bazaar's built in sync for every subtitle by default though. As I recall, it goofed some previously synced subtitles doing so. But you can set the settings, import some shows, swap the settings, import different one.
https://www.bazarr.media/
Sushi is a similar program which also hasn't received maintenance in a long time but still works if you're able to meet the dependencies. A Python 3 fork apparently exists, though I haven't used it myself.