Skip to content
Sublarr is now 1.10.1 — stable. Subtitle search, scoring and *arr integration are production-ready; LLM translation stays experimental. v1.10.1 released
v1.10.1 · 29 provider adapters · 12 translation backends · OpenAPI live

Subtitle automation for
TV, film and anime.

Sublarr runs in Docker on your own server and works with Sonarr, Radarr, Jellyfin and Emby: search, score, sync, clean up.
Built for the hard cases — absolute episode numbering, ASS styling, fansub groups. Whatever handles those handles the rest of your library without breaking a sweat.

Docker docker run -d -p 5765:5765 ghcr.io/abrechen2/sublarr:latest
localhost:5765 — Library
Sublarr Library View

29

Provider Adapters

63

Subtitle Languages

0

Cloud Calls Unless You Enable Them

GPL-3.0

Open Source

Features

Everything your subtitles need.

Built for power users with self-hosted media stacks.

29 provider adapters

  • 21 source services + embedded extractor + 7 Subliminal wrappers
  • ASS-first bonus (+50) and anti-MT penalty (−40) in the score
  • SHA-256 deduplication catches identical files
  • AniDB resolution for anime with alternate episode order
See details →

Multi-engine sync

  • Fallback chain: ffsubsync (audio-feature) + alass (alignment)
  • Auto-sync after every download
  • Large drift (>2s) → alass first, fallback ffsubsync
  • Per-engine audit log with score + correction
See details →

Waveform editor

  • Audio waveform with snap-to-wave (frame-accurate)
  • ASS/SRT syntax highlighting in the cue editor
  • Active-cue bar + region labels above the waveform
  • Auto-repair on save: BOM, encoding, cue overlap
See details →

*arr integration

  • Sonarr & Radarr webhooks: Download events
  • Multi-instance: multiple Sonarr/Radarr/Jellyfin/Emby in parallel
  • Tag-based language profiles (tag "anime" → DE+EN)
  • Library refresh via API for Jellyfin & Emby
See details →

Wanted scanner

  • Event-driven with optional periodic scans
  • Batch search with backlog reserve against quota bursts
  • Slow-mode backoff for unfindable items (4h → 24h)
  • Subtitle upgrade job: better ASS to replace existing SRT
See details →

Reliability

  • Per-provider circuit breaker (CLOSED → OPEN → HALF_OPEN)
  • State persists across container restarts
  • Budget manager with 429 backoff + refunds
  • Multi-key pool: rotates API keys before hitting limits
See details →

Library & sidecar tools

  • Sidecars as first-class citizens on detail pages
  • Inline HI removal, timing shift, format convert
  • Embedded track extraction via ffmpeg
  • Trash with 30-day retention instead of hard delete
See details →

Localization

  • Full UI in German + English with one click
  • 63 subtitle languages in language profiles (up from 20)
  • Per-profile cutoff stops searches when target hits
  • audioExclude skips items with matching audio language
See details →

Cleanup operations

  • 6 ops: language, format, orphan files & DB, backups, foreign tracks
  • Dry-run preview shows every file before apply
  • Trash with 30-day retention — restore supported
  • Path-mapping aware, scheduler-integrated
See details →

Optional translation Experimental

  • 12 backends: Ollama, DeepL, Claude, Gemini, OpenAI, DeepSeek, …
  • Live queue with per-backend cost tracking
  • Off by default — opt in via Settings → Translation
  • Local models experimental, cloud backends more reliable

Screenshots

See it in action.

A look at the real Sublarr interface.

localhost:5765 / dashboard
Sublarr DashboardSublarr LibrarySublarr WantedSublarr SettingsSublarr History

Workflow

From download to subtitled — automatically.

01

Connect your stack

Link Sonarr, Radarr, Jellyfin or Emby. Sublarr receives webhooks whenever new media arrives.

02

Search & Score

29 provider adapters searched in parallel. Subtitles scored, deduplicated and ranked — ASS preferred.

03

Translate & Sync

Optionally translate with a local LLM, sync timing with ffsubsync, then deliver to your media server.

Installation

Up and running in minutes.

# Pull and run
docker run -d \
  --name sublarr \
  -p 5765:5765 \
  -v /path/to/config:/config \
  -v /path/to/media:/media \
  ghcr.io/abrechen2/sublarr:latest

Then open http://localhost:5765 in your browser — or read the Installation Guide for the full setup.

Trust

What Sublarr does with your files — and what it doesn't.

A subtitle manager reaches into your media library. So here is what happens, without the marketing voice.

Your videos never leave the server

Hash-based search computes a checksum locally and sends only that — never the file itself.

No telemetry without consent

Anonymous usage statistics are opt-in. Nothing is sent until you actively agree, and you can withdraw at any time.

Deleted is not gone

Removed subtitles go to a trash folder and stay restorable for 30 days. No immediate hard delete.

Preview before it acts

The invasive tools — cleanup, repair, the automation dry run — show you what they would change first.

Hardlinks stay intact

Files hardlinked into your torrent client are skipped on remux by default — rewriting them would break the seed.

Cloud only if you want it

Translation is optional and off. If you use it, you choose between local Ollama and cloud services.

Support

Like Sublarr? Buy me a coffee.

Sublarr is free and open source — built and maintained in my free time. If it saves you hours of subtitle hunting, a small donation goes a long way to keep the project alive.

  • Keeps the project maintained and updated
  • Funds server costs for the translation model
  • Motivates new features and bug fixes
Donate via PayPal

No account required. Any amount appreciated.

Sublarr

Sublarr

Self-hosted Subtitle Manager

29

Adapters

12

Backends

GPL

License

Star on GitHub

Documentation

Everything you need, in the docs.

From your first docker compose up to the plugin API — the docs are part of the project. Open source, versioned, no tracking.

Full overview in the docs — searchable, with sidebar and full-text search.