Skip to content

Bazarr

Bazarr is a subtitle management tool available at bazarr.hdhomelab.com. It automatically downloads subtitles for media managed by Sonarr and Radarr, and can synchronize subtitle timing to match the audio track.


Deployment

Bazarr runs in Kubernetes (media namespace) as a single-replica Deployment, pinned to worker-2a.

graph LR
    Sonarr -->|SignalR events| Bazarr
    Radarr -->|SignalR events| Bazarr
    Bazarr -->|download subtitles| Providers[Subtitle Providers]
    Bazarr -->|config| LocalPVC[local-path PVC\nworker-2a]
    Bazarr -->|read media| MediaNFS[(NAS emby-media PVC)]
    CronJob[Hourly CronJob] -->|rsync| LocalPVC
    CronJob -->|backup| NFS[(NAS backup PVC)]
Hold "Alt" / "Option" to enable pan & zoom
  • URL


    bazarr.hdhomelab.com

  • Namespace


    media

  • Image


    lscr.io/linuxserver/bazarr

  • Node


    Pinned to worker-2a

  • Storage


    local-path config + shared NAS media volume

  • Config


    flux/apps/noah/media/bazarr/


Storage & Backup

Config uses local-path (SQLite performance — Bazarr's database locks under NFS) with an hourly rsync CronJob to NFS — see SQLite on Local Path for the pattern details and migration procedure.

Volume PVC Storage class Purpose
/config bazarr-config local-path Database and settings
/data/media emby-media syno-nfs-retain Shared NAS media library
Force a manual backup
kubectl create job --from=cronjob/bazarr-config-backup bazarr-config-backup-manual -n media

Subtitle Synchronization

Bazarr uses ffsubsync to align subtitle timing to the actual audio track. This is especially useful for subtitles with progressive frame-rate drift — where timing is correct at the start of an episode but diverges toward the end.

Setting Value Notes
use_subsync true Enables the Sync button and post-processing
no_fix_framerate false Allows ffsubsync to stretch timing for FPS mismatches
max_offset_seconds 60 Maximum shift applied
subsync_threshold 90 Minimum confidence score to auto-apply sync
  1. Extracts the audio track from the video file
  2. Detects speech segments via voice activity detection
  3. Aligns subtitle cue positions to the detected speech
  4. Stretches the timeline if frame rates differ (e.g. 23.976fps subs on a 25fps encode)
  5. Rewrites the .srt file with corrected timestamps

Progressive drift

If a subtitle is fine at the start but increasingly off by the end of the episode, it's a frame rate mismatch. The Sync button with no_fix_framerate: false fixes this automatically.


Key Configuration

Setting Value
TZ America/New_York
PUID / PGID 1034 / 100
CPU request / limit 500m / 1
Memory request / limit 256 MiB / 1 GiB