Running a personal media server is straightforward until you add international content, hearing-impaired viewers, or films where the audio mix buries dialogue. Jellyfin handles playback well, but subtitle management is where it falls short on its own. Bazarr fills that gap by automating subtitle searches, downloads, and syncing across your entire library.

What Bazarr Actually Does and Why It Pairs with Jellyfin
Bazarr is a standalone subtitle manager that connects to media server applications like Jellyfin. It monitors your movie and TV show libraries, identifies missing subtitles, queries providers like OpenSubtitles and Subscene, and downloads the best match automatically. You never open a browser to hunt for an SRT file again.
The integration works through Jellyfin’s API. Bazarr reads your library data directly from Jellyfin, which means it knows exactly which files exist, which languages are already covered, and which episodes were added overnight. When Jellyfin scans a new file into your library, Bazarr picks it up and starts searching within minutes. The two applications run side by side – they do not need to be installed on the same machine, though keeping them together simplifies networking and reduces latency.
Subtitle providers each have their own databases, quality levels, and rate limits. Bazarr lets you configure multiple providers simultaneously and ranks them by priority. If your top provider returns no results or a poorly-timed subtitle file, Bazarr falls through to the next option automatically. This layered fallback approach means your library fills in over time even for obscure titles that smaller providers might not index immediately.
One thing worth understanding before setup: Bazarr separates the concepts of “wanted” and “missing” subtitles. A wanted subtitle is one you have configured Bazarr to seek for a specific language. A missing subtitle is one where the search has already failed or has not run yet. Keeping that distinction clear helps when you are troubleshooting why a particular file shows no subtitles despite Bazarr appearing to run correctly.

Installing and Configuring the Integration Step by Step
The cleanest way to run both applications together is with Docker Compose. If you already have Jellyfin running as a container, adding Bazarr is a matter of appending its service block to your existing compose file. Create a bazarr service using the linuxserver/bazarr image, map port 6767 to the host, and mount the same media volumes your Jellyfin container uses. The volume paths must match exactly between both containers – if Jellyfin sees your movies at /media/movies, Bazarr must see them at the same path, otherwise the API mapping will break and Bazarr will report files it cannot actually write to.
After running docker compose up -d, open Bazarr’s web interface at http://your-server-ip:6767. Navigate to Settings, then Sonarr or Radarr – but wait. Bazarr’s Jellyfin integration lives under Settings > General, not under the arr-stack options. Scroll to the Use Sonarr or Use Radarr toggles only if you have those in your stack. For a pure Jellyfin setup, go to Settings > Jellyfin, enter your server URL, and paste in an API key generated from Jellyfin’s dashboard under Administration > API Keys.
Once Bazarr connects to Jellyfin successfully, it pulls your library structure automatically. You will see your series and movies populate under the Series and Movies tabs. Now configure your subtitle languages under Settings > Languages. Add a language profile – for example, a profile called “English Only” that lists English as the only wanted language. Assign this profile to your libraries either globally or per title. Any title without a language profile assigned will be ignored by Bazarr entirely, so do not skip this step.
Subtitle providers require accounts. OpenSubtitles is the most widely used and offers a free tier with a daily download limit. Create an account at their website, then enter your credentials under Settings > Providers in Bazarr. Enable the providers you want, drag them into priority order, and save. Bazarr will immediately begin searching for missing subtitles across your library. For larger libraries, the initial scan can take several hours – this is normal and expected. You can watch progress under the Wanted tab.
Subtitle sync is a separate feature worth enabling. Downloaded subtitles sometimes have timing offsets – the text appears half a second before the dialogue, which is distracting enough to make a file unwatchable. Bazarr includes an audio sync tool that compares the subtitle track against the audio stream and adjusts the timing automatically. Enable this under Settings > Subtitles by toggling Automatic Subtitles Synchronization. It requires ffprobe to be available in your container or on the host, which the linuxserver image includes by default.
Keeping the Setup Running Long-Term
Bazarr handles new content through a combination of scheduled scans and webhooks. The scheduled scan runs at an interval you define – every few hours works for most setups. For faster detection, configure Jellyfin to send a webhook to Bazarr whenever new media is added. In Jellyfin, install the Webhook plugin from the plugin catalog, add a new webhook pointing to http://bazarr-ip:6767/api/webhooks/jellyfin, and select the Item Added event type. After that, a new episode downloads and has subtitles within minutes rather than waiting for the next scheduled scan window.

The one ongoing maintenance task that catches people off guard is provider API limits. OpenSubtitles free accounts allow a set number of downloads per day, and a large library backfill can exhaust that limit quickly. If Bazarr suddenly stops finding subtitles for new content, check the provider logs under System > Logs for rate limit errors. The fix is either upgrading to a paid provider tier or adding a second provider as a fallback so Bazarr routes around the limit automatically. Some users run Bazarr with three or four providers enabled simultaneously specifically to avoid this single point of failure.





