S

Fill the gaps in your Bazarr subtitle library

Subtitlarr translates subtitles you already have — English, say — into the languages you're missing, using a local or cloud LLM. Bazarr stays the only thing that ever touches your media files.

Docker Unraid Ollama Gemini NVIDIA NIM OpenRouter Groq
Subtitlarr dashboard showing a translation run in progress

How it works

1

Polls Bazarr's wanted list

On a schedule you control, Subtitlarr checks Bazarr for subtitles it's still missing.

2

Finds an existing source language

If the item already has a subtitle in one of your preferred languages (e.g. English), that becomes the translation source — read entirely through Bazarr's own API.

3

Translates with your engine cascade

Walks an ordered list of engines you configure — local (Ollama, llama.cpp) or cloud (Gemini, NVIDIA, OpenRouter, Groq) — falling back automatically on rate limits or failures.

4

Reattaches original timing and uploads

The LLM only ever sees dialogue text, never timestamps — translated text is reassembled onto the source subtitle's original timing, then uploaded back to Bazarr.

Why it's built this way

No media access

Subtitlarr never mounts your media library. All reading and writing goes through Bazarr's own REST API — Bazarr stays the only thing with filesystem access.

Multi-engine cascade

Mix any number of local and cloud engines in one ordered fallback list, with automatic rate-limit cooldowns and per-item model tracking.

Regional language variants

Spanish, Portuguese, English, French, and Chinese each get explicit regional-standard control — no more guessing which dialect a bare language code means.

Runs anywhere Docker does

Ships as a container with a published GHCR image, a Docker Compose example, and a ready-to-use Unraid Community Applications template.

How this compares to Lingarr

Lingarr is another subtitle-translation tool worth knowing about — the two take different approaches, and which fits depends on your setup.

SubtitlarrLingarr
Media/filesystem access None — reads and writes subtitles entirely through Bazarr's own API Requires mounting your media library directly (e.g. /movies, /tv) and writes subtitle files to disk itself
When it triggers After Bazarr's own subtitle search has had a chance to find a real, existing translation — age-gated by default, so Bazarr's providers get first shot Fires as soon as Radarr/Sonarr detects new media, ahead of Bazarr ever getting a chance to find a legitimate subtitle
Setup surface One container, one connection (Bazarr's URL + API key) — everything else (engines, languages, schedule) is configured from its own web UI afterward Connects separately to Radarr, Sonarr, and needs media volumes mapped correctly for every library

Comparison based on Lingarr's own public documentation as of this writing — worth double-checking their current docs if something here looks out of date.

Ready to try it? Head to Install for Docker/Unraid setup, then Engine Setup for getting free-tier API keys and the recommended engine cascade.