Bazarr is the subtitle manager that sits between Sonarr/Radarr and your media library — it automatically downloads, renames, and organizes subtitles for every movie and TV episode in your collection.
What it is
| Platform | TrueNAS Scale (Docker custom app) |
| Port | 6767 (web UI) |
| Image | lscr.io/linuxserver/bazarr:latest |
| Config path | /mnt/apps/bazarr/config → /config |
| Movies path | /mnt/media/movies → /movies |
| TV path | /mnt/media/tv → /tv |
| License | GPL-3.0 |
Bazarr connects to Sonarr and Radarr via their APIs, sees what movies and shows are in your library, and automatically searches for matching subtitles. It downloads them, renames them to match your media files, and places them in the same folder — Plex, Jellyfin, and Emby pick them up automatically.
Without Bazarr, you manually find subtitles for every movie or rely on Plex's built-in subtitle search, which is limited and often returns wrong matches. Bazarr handles it for every file, in every language you configure, at the quality you specify.
The hard part: subtitle providers and API keys
The install is five minutes. The hard part is configuring subtitle providers — most require free accounts or API keys, and some have daily download limits.
- Subtitle provider chain
The mistake everyone makes: configuring only OpenSubtitles and hitting the free tier limit on the first day. The free OpenSubtitles API allows 5 subtitle downloads per day. For a library with hundreds of files, this runs out instantly.
- Provider limits (free tier)
- OpenSubtitles
- 5 downloads/day (requires API key from opensubtitles.org)
- Subscene
- Unlimited (no account needed)
- Podnapisi
- Unlimited (no account needed)
- Addic7ed
- Limited (requires account, some shows restricted)
- OpenSubtitlesvip
- Unlimited (paid, $5/year)
- Recommendation
- enable Subscene + Podnapisi as primary (free, unlimited)
How to install it
Step 1: Create directories
mkdir -p /mnt/apps/bazarr/config
Step 2: Get an OpenSubtitles API key (optional)
- Go to opensubtitles.org
- Create a free account
- Go to API → register for an API key
- Copy the API key — you need it for Bazarr configuration
Step 3: Deploy the Docker Compose
TrueNAS Scale → Apps → Discover Apps → Custom App (Docker Compose):
services:
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: bazarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
ports:
- 6767:6767
volumes:
- /mnt/apps/bazarr/config:/config
- /mnt/media:/media
After deploy:
# Check Bazarr is running:
docker logs bazarr 2>&1 | grep -i "bazarr"
# Open the web UI:
# http://<nas-ip>:6767
Log in at http://<nas-ip>:6767 — no password by default.
Step 4: Connect to Sonarr and Radarr
- Open Bazarr → Settings → Sonarr
- Enter:
- Hostname:
http://<nas-ip>:8989(Sonarr's port) - API Key: from Sonarr → Settings → General → API Key
- Click Test → Save
- Go to Settings → Radarr
- Enter:
- Hostname:
http://<nas-ip>:7878(Radarr's port) - API Key: from Radarr → Settings → General → API Key
- Click Test → Save
Bazarr will now sync your movie and TV libraries from Sonarr and Radarr.
Configuration that matters
Subtitle providers
| Provider | Account required | Daily limit | Quality | Languages |
|---|---|---|---|---|
| Subscene | No | Unlimited | Good | Multi |
| Podnapisi | No | Unlimited | Good | Multi |
| OpenSubtitles | Yes (free API key) | 5/day | Best | Multi |
| Addic7ed | Yes (free account) | Limited | Good | EN mainly |
| OpenSubtitlesVIP | Yes (paid $5/year) | Unlimited | Best | Multi |
Configure in Settings → Providers. Enable Subscene and Podnapisi first — they are free and unlimited. Add OpenSubtitles as a backup for rare content.
Languages
| Setting | Recommended value | Why |
|---|---|---|
| Languages | English + your native language | Most people need 1–2 languages |
| Hearing-impaired | Off (unless needed) | HI subtitles include sound effects, clutter the screen |
| Forced | Separate setting | Forced subtitles are for foreign-language dialogue only |
Sync interval
| Setting | Recommended value | Why |
|---|---|---|
| Library sync interval | 6 hours | Balances freshness with API load |
| Subtitle search interval | 24 hours | Does not re-search daily |
| Minimum score | 90% | Only downloads high-confidence matches |
File naming
| Setting | Value |
|---|---|
| Subtitle naming | Match video filename exactly |
| Example | Inception (2010) [bluray-1080p].srt matches Inception (2010) [bluray-1080p].mkv |
| Save in movie folder | Yes |
| Create .nfo subtitle entry | No (Plex does not use it) |
Blacklist
| Setting | Purpose |
|---|---|
| Blacklist releases | Avoid known bad subtitle sources |
| Blacklist words | Skip subtitles with keywords like "cam", "hdcam", "ts" |
| Minimum file size | 10 KB (filters out junk subtitles) |
What I'd tell anyone building this
-
Bazarr does not replace Sonarr/Radarr. It is a companion that manages subtitles only. You still need Sonarr for TV and Radarr for movies. Bazarr connects to them via API and reads your library.
-
The OpenSubtitles free tier is 5 downloads per day. If you have 200 movies without subtitles, enable Subscene and Podnapisi first — they are unlimited and free. Use OpenSubtitles only for content that the free providers miss.
-
The subtitle must match the media file exactly. Bazarr renames downloaded subtitles to match your media files. If your media is named
Inception (2010) [bluray-1080p].mkv, Bazarr saves the subtitle asInception (2010) [bluray-1080p].srt. If the naming does not match, Plex will not detect the subtitle. -
Forced subtitles are for foreign-language scenes only. They contain only the text for non-English dialogue (signs, foreign speech). Enable forced subtitles separately from full subtitles if you want both.
-
Bazarr scans your library automatically. It connects to Sonarr/Radarr and sees every movie and episode. You do not need to add files manually — Bazarr watches your library and downloads subtitles for anything missing.
-
The first scan takes time. Bazarr processes your entire library on first sync. A library with 500+ items takes 10-20 minutes to scan and queue subtitle searches. Be patient.
Get it
Links:
Quick install (Docker Compose):
services:
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: bazarr
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
ports:
- 6767:6767
volumes:
- /mnt/apps/bazarr/config:/config
- /mnt/media:/media
After deploy:
# Open the web UI:
# http://<nas-ip>:6767
# Connect Sonarr:
# Settings → Sonarr → Hostname: http://<nas-ip>:8989 + API key
# Connect Radarr:
# Settings → Radarr → Hostname: http://<nas-ip>:7878 + API key
Log in at http://<nas-ip>:6767, connect Sonarr and Radarr, enable subtitle providers, and Bazarr handles the rest.