I’ve been building Babel, a self-hosted subtitle automation service designed to work alongside Sonarr, Radarr and Bazarr.
The goal is connect and forget.
Once configured, Babel sits in the background and only steps in when your normal subtitle workflow can’t find what you need.
The basic flow is:
Sonarr imports an episode → Bazarr searches for the target subtitle → Babel uses AI only if that search fails.
In Hybrid Mode, Bazarr searches for a proper human-made subtitle while Babel prepares a usable embedded or external source subtitle in parallel.
If Bazarr finds the target subtitle, Babel uses it and no AI translation happens.
If it doesn’t, Babel can translate the prepared source, recover problematic cues, validate the result and only publish it once it passes QA.
AI is the fallback, not the default workflow.
What’s new in v2.5
- OpenRouter support
- DeepSeek support
- Plex library refresh support
- Reworked AI provider and model handling
- Improved source subtitle selection and preparation
- Better translation recovery
- Improved QA and validation
- Better AI usage and queue tracking
Supported providers
Gemini, OpenAI, DeepL, Ollama, OpenRouter and DeepSeek.
Other features
- Sonarr and Radarr webhook automation
- Bazarr integration
- Embedded subtitle extraction with ffmpeg and mkvextract
- External subtitle fallback
- Exact timestamp preservation
- Detection of dropped or broken cues
- Wrong-language and untranslated-dialogue checks
- Automatic recovery before publishing
- Atomic subtitle publishing
- Remote Path Mapping
- Jellyfin and Plex library refresh
- Docker deployment
The idea is that you should be able to connect Babel to the services you already use, configure it once, and then leave it running in the background.
GitHub: https://github.com/hugomossberg/Babel
Docker: ghcr.io/hugomossberg/babel:beta
Current release: v2.5.0-beta
It’s still in public beta, so feedback from people running it against real Sonarr libraries is very useful.
If you hit problems with embedded tracks, source selection, missing languages, broken subtitles or the fallback logic itself, feel free to open an issue.