Subtitles for everything in your library.Found, timed and translated, automatically.
Bazarr+ watches every show and film Sonarr and Radarr know about, fetches subtitles in the languages you asked for, lines them up with your files, and does it again for every new episode. Self-hosted. No account, no telemetry.
docker pull ghcr.io/lavx/bazarr:latest
- Stars
- —
- Forks
- —
- Providers
- —
- Latest
- —
A demonstration, not a capture. Drag it to scrub.
What it does
If you have never automated subtitles before, this is the whole job. Bazarr+ does each of these on a schedule, for everything in your library, and tells you when it could not.
Search every source you trust, in order
A provider is a place subtitles come from, like OpenSubtitles or Podnapisi. Bazarr+ ships a catalog of them you can install, enable and put in priority order, and it stops as soon as a good enough match is found rather than hammering every site.
Line the text up with your actual file
A subtitle written for a different release drifts, so the words land seconds off. Bazarr+ compares the subtitle against your file’s audio and shifts it into place, with several sync engines available and a side-by-side compare when you want to check the work yourself.
Make the language you wanted, when nobody made it
Some languages simply do not exist for some titles. Bazarr+ can translate an existing subtitle, or a track already embedded in the file, using any model on OpenRouter including free tiers. It can also compose a bilingual subtitle with two languages stacked, which is the one in the frame above. How subtitle processing works.
Do it again for every new episode, without being asked
You describe what you want once, as a language profile: which languages, whether forced or hearing-impaired tracks count, how good is good enough. After that Bazarr+ applies it to everything, including whatever downloads at 3am tonight.
The interface
Screenshots from the running application. Nothing here is a mockup.
What this fork adds
Bazarr+ is a hard fork of Bazarr by morpheus65535, and it keeps everything that already worked. This is what it puts on top. If you are new here, you can skip this table entirely.
Finding subtitles at all
| Feature | Upstream Bazarr | Bazarr+ |
|---|---|---|
| Provider Hub v2.4 | Not available | Marketplace of subtitle provider plugins that replace the shipped providers, with startup auto-install of your enabled built-ins, local package installs, trust labels and an activity log |
| OpenSubtitles.org | Not available | Native plugin, scrapes in-process with a FlareSolverr fallback, so no API key or VIP account is needed |
| Provider priority | Requested, 72 votes | Priority order with early stop |
Making them right
| Feature | Upstream Bazarr | Bazarr+ |
|---|---|---|
| Combined subtitles v2.4 | Not available | Bilingual and trilingual SRT or ASS composed from subtitles already on disk, per profile or on demand |
| Embedded tracks and multi-engine sync v2.4 | Not available | Score and translate directly from embedded tracks, plus multi-engine sync with side-by-side compare |
| AI translation | Not available | Any OpenRouter model, free tiers included |
| Subtitle editor | Not available | Full editor with video preview, waveform and AI assistance |
At library scale
| Feature | Upstream Bazarr | Bazarr+ |
|---|---|---|
| First-run setup wizard v2.5 | Not available | A guided, skippable wizard walks a fresh install through Sonarr, Radarr, optional Plex or Jellyfin, a language profile and installing providers, handling the restart and resuming afterwards |
| Bulk operations | One at a time | 12 batch actions on any selection, up to 10,000 items per run |
| Mass sync | Requested, 260 votes | Select any number of shows or films and sync them all in one run |
Yours, and private
| Feature | Upstream Bazarr | Bazarr+ |
|---|---|---|
| Telemetry | GA4 and UA to Google | Removed entirely |
| Password security | MD5 | PBKDF2, 600,000 iterations |
| API key encryption v2.2 | Not available | AES encrypted at rest, with auto-migration and key rotation |
| Distribution Hub v2.4 | Not available | Multi-tenant OpenSubtitles-compatible API with named keys, tiers, per-window metering and per-key provider scoping, plus a first-party Jellyfin plugin and VLSub Bazarr+ |
| Jellyfin library refresh v2.2 | Development branch only | Cherry-picked and hardened, with HTTPS and self-signed support and a Refresh now control |
Install
Bazarr+ is a drop-in replacement for the upstream container. If you already run Bazarr, point it at your existing /config and everything carries over. Back that directory up first.
services:
bazarr:
image: ghcr.io/lavx/bazarr:latest
container_name: bazarr
restart: unless-stopped
ports:
- 6767:6767
environment:
- PUID=1000
- PGID=1000
- TZ=UTC
volumes:
- ./config:/config
- /path/to/movies:/movies
- /path/to/tv:/tv
That is enough to start. Two optional companions are worth knowing about: FlareSolverr, which lets the OpenSubtitles.org plugin get past Cloudflare challenges, and the AI translator sidecar, if you want translation. Both are covered in the getting started guide, which also walks through your first login.
There is also a one-line installer that writes the compose file for you and asks where your media lives. It runs a script from this site, so read it first if that matters to you, and it does for a lot of people: the exact file it fetches is here.
curl -fsSL https://lavx.github.io/bazarr/install.sh | bash
Questions
Yes. Bazarr+ uses the same database with a few added columns created on first run. Your database, settings, download history and subtitle files are all preserved. Back up your config directory first, swap the container image, and start.
Yes. Restore your config backup, change the image back, and start. The only manual step is clearing the password field in config.yaml, since upstream cannot read the PBKDF2 hash. The migration guide has the details.
That is how Bazarr+ learns what is in your library and where the files are, so it is the normal setup and the one the guides assume. Sonarr tracks TV, Radarr tracks films, and you can connect any number of either.
Free and open source under the same GPL licence as upstream Bazarr. AI translation runs through OpenRouter, which has free model tiers with generous limits. Paid models are available if you want higher quality, and they are entirely optional.
It is a native Provider Hub plugin that fetches publicly available subtitle pages in-process, the way a browser would, so no OpenSubtitles account or API key is needed. FlareSolverr is strongly recommended as a fallback for Cloudflare browser challenges: run the container and set its URL in the plugin settings.
The Discord server for questions and discussion, or GitHub issues for bugs. The guides cover installation, migration, AI translation and the hubs in detail.
Roadmap
Where Bazarr+ is going, nearest first. There are no dates here, because a self-hosted project ships when the work is right rather than when a quarter ends. Plans shift; the direction has not.
-
Shipped
The v2 line so farv2.6.2 “Clockwork” keeps subtitle history and sync outputs with the right media, saves useful partial OpenRouter translations with an incomplete status, lists uploads before background sync finishes, and adds explicit OpenRouter routing choices. Searches continue past unusable archives from catalog providers. The v2.6 line also brought whole-season subtitle downloads, stricter sync validation, and adoption of upstream Bazarr databases. Before it, v2.5 “Murmuration” brought many Sonarr and Radarr instances managed as one, per-instance subtitle settings and archive uploads.
-
Next
Coming on the v2 line- Discover. Search and pull subtitles for any title, whether or not it is in your library.
- A rebuilt translator. Translation moves in-process, with a catalog of models, configuration per engine, and a choice of engine per language profile, instead of a separate sidecar container.
- Search inside your subtitles. Find the episode from a line of dialogue you half remember, across everything you have.
- Run without Sonarr and Radarr. A standalone mode, packaged for the desktop, for people who have a folder of films rather than a media stack.
-
v3.0.0
Several v2 releases awayBazarr+ instances sharing subtitles directly with each other, peer to peer, with no central server in the middle and nothing shared that you did not choose to share. It is the largest thing on this list by a distance, which is why it carries the major version and why a good deal of the v2 line comes first.
Point it at your library.
It takes one compose file. Everything else it works out on its own, and if you change your mind, your backup puts you back exactly where you were.