You've got Sonarr grabbing new episodes and Radarr grabbing movies. qBittorrent is pulling the files down, and Prowlarr is feeding both of them indexers so you never touch that part again. Everything runs itself now — except subtitles. Those you're still downloading by hand, one episode at a time, hoping the version you found actually syncs with your file instead of running four seconds ahead by the third act.
Bazarr fixes that specific annoyance. It watches your Sonarr and Radarr libraries, notices when something is missing subtitles in the language you want, and pulls a matching file automatically from one of a dozen or so subtitle providers. No browser tabs, no comparing five versions of the same .srt file to guess which one is actually in sync.
This guide walks through installing Bazarr in its own LXC container on Proxmox VE using the community-scripts installer — the same one used for the Sonarr, Radarr, and Prowlarr guides on this site — and then connecting it to your existing library so it starts finding subtitles on its own.
What You Will Learn
- What Bazarr actually does, and why it needs access to your media files, not just your apps
- How to install Bazarr in an LXC container on Proxmox VE with the community-scripts installer
- Why path mapping trips up almost everyone on their first attempt, and how to avoid it
- How to connect Bazarr to Sonarr and Radarr, and set up your first language profile
- What the most common errors mean and how to fix them without guessing
What Is Bazarr?
Bazarr is a subtitle manager built to sit next to Sonarr and Radarr rather than replace anything they do. It reads your existing TV and movie library through each app's API, checks which episodes or movies are missing subtitles in the languages you've asked for, and searches a list of subtitle providers — OpenSubtitles.com, Subscene, Addic7ed, and several others — for a match. When it finds one, it downloads the file and drops it next to your video file, named so your media player picks it up automatically.
It doesn't stop there. Bazarr keeps checking after the initial download. If a better-scoring subtitle shows up later, or the one it grabbed turns out to be out of sync, it can replace it. That's the part manual subtitle hunting never really does — nobody goes back and re-checks a two-year-old episode to see if a cleaner subtitle file has since been uploaded.
One thing worth being clear about upfront: Bazarr doesn't just talk to Sonarr and Radarr over the network the way Prowlarr does. It also needs to read and write files inside your actual media library, because a subtitle file has to sit in the same folder as the video it belongs to. That one detail is the main thing that makes this install different from the other arr-stack guides on this site, and it's where most first attempts go wrong.
Why Would You Use It?
If everything in your library is already in a language you understand and you never watch with subtitles on, you can skip this one — Bazarr solves a problem you don't have. For everyone else, it saves a genuinely tedious chore. Foreign-language films, anime, shows in a language you're learning, or just wanting subtitles on for a partner who's hard of hearing — all of that means hunting down a matching .srt file for every single episode, forever, unless something automates it.
There's also a quality angle most people don't expect going in. Subtitle files found by hand are frequently out of sync by a second or two, especially for older or less popular content. Bazarr scores candidates from each provider and can run subtitle sync tools against the audio track to fix small timing drift automatically — something you'd never bother doing manually for a single episode.
Honestly, if you're only running Sonarr for a handful of English-language shows you already understand fine without subtitles, this is one to skip. It earns its place once subtitles are something you actually want on a regular basis, not just occasionally.
Prerequisites
- A Proxmox VE host on 8.x or 9.x with the node able to reach the internet
- Root access to the Proxmox web UI or shell
- At least 4 GB of free storage for the container
- Sonarr and/or Radarr already installed and reachable, with their API keys on hand (Settings → General → Security in each app)
- Your media library stored somewhere Bazarr's container can also reach — an NFS share, SMB share, or other storage that Sonarr and Radarr already use
- A free account with at least one subtitle provider; OpenSubtitles.com requires a login for API access, though a handful of other providers work without one
Step-by-Step Tutorial
1. Open the Proxmox Shell
Log into the Proxmox web UI, click your node in the left-hand tree, and open Shell from the toolbar. This is a root shell on the Proxmox host itself — the container doesn't exist yet, this is just where the installer runs from.
2. Run the Bazarr install script
Paste this into the shell and press Enter:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/bazarr.sh)"
This pulls an installer from the community-scripts project — the same third-party script collection behind the Sonarr, Radarr, and Prowlarr guides on this site. It's not an official Proxmox tool and it's not written by the Bazarr developers, but it's a widely used, actively maintained script that builds the container and installs Bazarr in one pass.
3. Accept the defaults, or go advanced
The script asks whether you want the default settings or the advanced menu. Default builds an unprivileged Debian 13 container with 2 CPU cores, 1024 MB of RAM, and 4 GB of disk — enough for Bazarr, which mostly sits idle waiting for new episodes rather than doing anything CPU-heavy.
Pick Advanced if you want to set the hostname, disk size, or network bridge yourself. For most homelabs the defaults are fine, though if you're planning on a large library with a lot of foreign-language content, bumping the disk to 8 GB gives you room without needing to resize later.
4. Wait for install and note the IP address
Takes roughly two to three minutes on typical hardware. When it's done, the script prints the container's IP and the Bazarr URL, something like http://192.168.1.60:6767. Port 6767 is Bazarr's default, separate from Sonarr's 8989, Radarr's 7878, and Prowlarr's 9696.
5. Give the container access to your media library
This is the step people skip and then wonder why nothing works. Bazarr has to be able to read your video files and write subtitle files right next to them — it can't do that if the container only has its own local disk. From the Proxmox shell, add a bind mount or NFS/SMB mount point to the container so it sees the same storage Sonarr and Radarr already use:
pct set <VMID> -mp0 /mnt/media,mp=/media
Replace <VMID> with the Bazarr container's ID, shown in the Proxmox web UI, and /mnt/media with wherever your library actually lives on the host. This mounts that same path inside the container at /media. Restart the container afterward for the mount to take effect.
6. Open Bazarr and step through initial setup
Visit the URL from step 4. Bazarr's first-run wizard asks for basic settings — set a username and password when it offers, since this container will hold API keys for Sonarr and Radarr once it's connected.
7. Connect Bazarr to Sonarr
Go to Settings → Sonarr, flip the toggle to enabled, and enter Sonarr's address and port (usually port 8989) along with its API key from Sonarr's own Settings → General → Security page. Click Test before saving — a passing test means Bazarr can already see your show list.
8. Connect Bazarr to Radarr
Same process under Settings → Radarr, this time with Radarr's address on port 7878 and its own API key. Test, then save.
9. Fix path mapping if the paths don't match
If Sonarr sees a show at /tv/Show Name but Bazarr's container mounts the same share at /media/tv/Show Name, Bazarr won't find the files even though the connection test passed — the API connection and the filesystem path are two separate things. Under Settings → Sonarr (and again for Radarr), scroll to Path Mappings and tell Bazarr how to translate one path into the other. Getting this exactly right the first time saves a lot of confused troubleshooting later.
10. Add a subtitle provider
Go to Settings → Providers, click the plus icon, and pick one. OpenSubtitles.com is the most reliable option for most languages but needs the free account you set up earlier. A few providers work without any login at all, though coverage tends to be thinner for less common languages.
11. Set up a language profile
Under Settings → Languages, create a profile — say, English, with an optional fallback if nothing's found in the primary language. Then assign that profile to your shows and movies from Bazarr's Series and Movies tabs, either one at a time or in bulk. Nothing downloads until a profile is actually assigned; adding a provider alone doesn't do anything by itself.
12. Let it run its first scan
Bazarr checks your library on a schedule, but you don't have to wait. From Series or Movies, select everything and choose Search Missing Subtitles to kick off an immediate pass. Give it a few minutes on a large library — it's working through every episode and checking each provider in turn.
Commands Explained
Two commands matter here, and it's worth knowing what each one actually does.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/bazarr.sh)"
curl -fsSL fetches the script from GitHub — -f fails silently instead of dumping an HTML error page, -s suppresses the progress bar, -S shows the error anyway if the request fails, and -L follows redirects. The result is fed straight into bash -c "...", which runs it immediately without saving anything to disk first. That's normal for these installers, but it does mean trusting the source — stick to the official community-scripts repository rather than a copy someone linked in a forum thread.
pct set <VMID> -mp0 /mnt/media,mp=/media
pct set changes an LXC container's configuration without needing to recreate it. -mp0 defines the first mount point slot (a container can have several, numbered mp0, mp1, and so on). The value before the comma is the path on the Proxmox host; the path after mp= is where that same storage shows up inside the container. This is what actually gives Bazarr access to your media files.
Common Errors
| Error | What It Means | Fix |
|---|---|---|
| Sonarr or Radarr connection test passes, but no shows or movies appear | The API connection works, but path mapping is missing or wrong | Open Settings → Sonarr (or Radarr) → Path Mappings and match the container's mount path to what Sonarr or Radarr reports for each file |
| "No permission to write" when Bazarr tries to save a subtitle | The bind-mounted storage is read-only, or the container's user doesn't have write access to it | Check the mount point's permissions on the Proxmox host, and confirm the share itself allows write access from the container's IP |
| Subtitle search returns nothing for a show that should have plenty available | No provider is enabled, or the enabled provider has no coverage for that language | Check Settings → Providers to confirm at least one is enabled and logged in correctly, and try adding a second provider for better coverage |
| "Invalid credentials" under a provider in Settings → Providers | The provider's login has expired, changed, or was rate-limited into a temporary lockout | Re-enter the credentials, and if it keeps failing, wait an hour — some providers throttle repeated failed logins |
Troubleshooting
If Bazarr's web UI won't load, start from the Proxmox shell with pct enter <VMID>, then check systemctl status bazarr. A stopped service usually comes back cleanly with systemctl restart bazarr, and if it doesn't, the logs under /var/log/bazarr inside the container will generally say why.
When subtitles just aren't showing up for specific episodes, check System → Logs inside Bazarr's own UI before assuming something's broken. It logs every search attempt, including why a candidate got rejected — wrong episode number, hearing-impaired flag mismatch, score too low. Nine times out of ten the answer's sitting right there instead of requiring any real digging.
If path mapping seems right but files still aren't found, double-check for a trailing slash mismatch or a case-sensitivity difference between what Sonarr reports and what the container actually sees — Linux filesystems care about that even when the paths look identical at a glance.
Best Practices
Only enable subtitle providers you'll actually use. Every extra provider adds another search per episode, which slows down large scans and increases the odds of getting rate-limited on all of them at once.
Set a static IP or DHCP reservation for the Bazarr container early, the same as you would for Sonarr, Radarr, or Prowlarr — it's one more link in a chain of apps that all depend on finding each other by address.
Assign language profiles deliberately instead of applying one blanket profile to your whole library. A show you watch in the original language doesn't need the same profile as one where you always want English subtitles on.
Back up Bazarr's configuration along with the rest of your arr stack. A scheduled vzdump backup of the container covers this, and it's much less painful than rebuilding provider logins and path mappings from scratch.
Frequently Asked Questions
Does Bazarr work with movies and TV shows equally well?
Yes. It connects to Radarr for movies and Sonarr for TV shows independently, and you can use either one on its own without the other installed.
Do I need a paid account with a subtitle provider?
No. Most providers, including OpenSubtitles.com, offer a free tier that's enough for typical homelab use. Paid tiers mainly raise rate limits for people hammering the API constantly.
Can Bazarr embed subtitles directly into the video file instead of a separate .srt?
It downloads external subtitle files by default, which most media players and streaming setups prefer since they're easy to toggle or replace. Muxing subtitles into the video container is possible with extra tools but isn't what Bazarr does out of the box.
Why does Bazarr need its own copy of my media library instead of just talking to Sonarr and Radarr?
Subtitle files have to live in the same folder as the video they match, so Bazarr needs real filesystem access to write them there — an API connection to Sonarr or Radarr alone only tells it what exists, not where to put a subtitle file.
What happens if a downloaded subtitle turns out to be out of sync?
Bazarr can attempt automatic sync correction against the audio track, and it will also swap in a better-scoring subtitle if one becomes available later. You can also manually search and pick a different candidate from within the UI for any single episode.
Is it safe to expose Bazarr to the internet?
Treat it like Sonarr, Radarr, or Prowlarr — don't expose it directly. Put it behind a reverse proxy with authentication, or reach it remotely through something like Tailscale instead of opening a port.
Conclusion
Bazarr closes the last manual gap in an otherwise fully automated media setup. Once it's connected to Sonarr and Radarr and pointed at your actual media storage, subtitles just show up alongside new episodes and movies without you doing anything — including going back and fixing the ones that were out of sync to begin with.
The path mapping step is the one part of this install that isn't obvious from the UI alone, and it's the reason most first attempts stall out with an empty library view despite a passing connection test. Get that part right, and the rest of Bazarr mostly runs itself in the background, the same way the rest of this stack does once it's set up properly.