Jellyfin Subtitles Guide 2026: Add, Sync & Automate with Bazarr (Complete)

Jellyfin Subtitles Guide 2026: Add, Sync & Automate with Bazarr (Complete)

Jellyfin Subtitles: The Complete Guide (2026)

Subtitles are one of the most requested features on any media server. Whether you serve a multilingual family or simply prefer watching foreign films in their original language, getting subtitles right on Jellyfin is essential.

This guide covers everything: formats, plugins, automation with Bazarr, and troubleshooting the most common issues.


Subtitle Formats Explained

Not all subtitle formats are equal. The format you use affects compatibility, styling, and whether Jellyfin needs to transcode.

FormatTypeStylingTranscode risk
SRTExternal textNoNone (Direct Play)
ASS/SSAExternal textYes (fonts, colors, positioning)Low
PGS (SUP)Image-based (Blu-ray)YesHigh - forces burn-in transcode
VobSub (IDX/SUB)Image-based (DVD)YesHigh - forces burn-in transcode
WebVTTExternal textLimitedNone

The golden rule

Text-based subtitles (SRT, ASS) = Direct Play. Image-based subtitles (PGS, VobSub) force Jellyfin to burn them into the video stream, which triggers a full video transcode.

If your users complain about buffering only when subtitles are enabled, PGS burn-in is almost certainly the cause.


Embedded vs External Subtitles

Embedded subtitles

Subtitles stored inside the MKV container. Jellyfin detects them automatically.

  • Pros: no extra files, always travel with the media
  • Cons: harder to replace or update, PGS embedded subs force transcoding

External subtitles

Separate files placed next to the video file:

Movie Name (2024)/
  Movie Name (2024).mkv
  Movie Name (2024).en.srt
  Movie Name (2024).fr.srt
  Movie Name (2024).de.srt

Jellyfin picks them up automatically if the naming matches. Use ISO 639-1 language codes (en, fr, de, es, it, pt, etc.).


Method 1: OpenSubtitles Plugin (Manual)

The built-in OpenSubtitles plugin lets you search and download subtitles from the Jellyfin dashboard.

Setup

  1. Dashboard → Plugins → Catalog → OpenSubtitles
  2. Install and restart Jellyfin
  3. Go to Plugins → OpenSubtitles → Enter your opensubtitles.com API credentials
  4. Navigate to any movie → Edit Metadata → Subtitles → Search

Important: Use the opensubtitles**.com** API (v2), not the legacy .org API.

This method works well for occasional downloads but does not scale for large libraries.


Method 2: Bazarr (Fully Automated)

For serious subtitle automation, Bazarr is the industry standard. It integrates with Radarr and Sonarr to automatically download subtitles for every movie and episode in your library.

Docker Compose

services:
  bazarr:
    image: lscr.io/linuxserver/bazarr:latest
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    volumes:
      - ./bazarr/config:/config
      - /path/to/movies:/movies
      - /path/to/tv:/tv
    ports:
      - 6767:6767
    restart: unless-stopped

Configuration

  1. Open Bazarr at http://your-server:6767
  2. Settings → Subtitles → Add providers (OpenSubtitles.com, Addic7ed, Podnapisi, etc.)
  3. Settings → Languages → Set your desired languages and priorities
  4. Settings → Radarr / Sonarr → Connect with API keys
  5. Bazarr will scan your library and download missing subtitles automatically

Bazarr best practices

  • Set a score threshold (e.g., 90+) to avoid bad subtitle matches
  • Enable anti-captcha if you use providers that require it
  • Schedule scans during off-peak hours to reduce server load
  • Use subtitle sync (built into Bazarr) to fix timing offsets automatically

Fixing Common Subtitle Issues

JellyWatchTry JellyWatch — Your Jellyfin companion, everywhere.

Subtitles cause buffering

Cause: PGS or VobSub image-based subtitles force a full video transcode (burn-in).

Fix: Replace image-based subs with SRT equivalents. Use Bazarr to download text-based alternatives.

Subtitles are out of sync

Fix options:

  • Use Bazarr built-in subtitle sync (automatic)
  • Use SubSync (standalone tool) for manual correction
  • Adjust offset in the Jellyfin player during playback

Subtitles not detected by Jellyfin

Cause: File naming mismatch.

Fix: Ensure the subtitle file name matches the video file name exactly, with the language code:

Movie.mkv
Movie.en.srt     ✅
Movie_english.srt ❌

Wrong language displayed

Fix: Edit the subtitle metadata in Jellyfin: Media → Edit → Subtitles → Set correct language.

ASS subtitles look wrong (missing fonts)

Cause: ASS subtitles reference fonts not available on the client.

Fix: Use SRT instead, or ensure the client supports ASS rendering (Jellyfin Media Player, mpv-based clients).


Subtitle Strategy for Multi-User Servers

If you share your server with users who speak different languages:

  1. Configure Bazarr to download subtitles in all required languages automatically
  2. Set Jellyfin default subtitle language per user: Dashboard → Users → [User] → Subtitle language preference
  3. Prefer SRT format to avoid transcoding for subtitle-heavy users
  4. Monitor transcode sessions with JellyWatch - subtitle burn-in is one of the top transcode triggers

Subtitle Provider Comparison

ProviderCoverageQualityFree tier
OpenSubtitles.comExcellentGoodYes (limited)
Addic7edTV showsVery goodYes
PodnapisiEuropean languagesGoodYes
SubsceneAsian languagesGoodYes

Using multiple providers in Bazarr increases your chances of finding accurate subtitles.


Subtitle burn-in is a silent performance killer. A user enabling PGS subtitles can spike your CPU from 5% to 90% instantly.

JellyWatch shows you the exact transcode reason for every active session - including when subtitles are the cause. You can then message the user or adjust their subtitle settings remotely.


Subtitles triggering unexpected transcodes? Catch it in real time. Download JellyWatch on Google Play - see transcode reasons, monitor CPU spikes, and manage your Jellyfin server from Android.

Running Emby? Download EmbyWatch on Google Play - the same monitoring experience for Emby servers.

Comments 4

SubtitleGuru·

Bazarr + OpenSubtitles is the combo everyone needs. Automatic subtitles in 5 languages for my entire library. Set it and forget it.

Multilingual_Mike·

The PGS vs SRT explanation finally made me understand why subtitles were causing buffering. Replaced all PGS with SRT and problem solved.

andreamoretti·

Running Bazarr with 4 languages (EN, FR, DE, ES) for my international friend group. It downloads subs automatically within minutes of Radarr importing a new movie. Zero manual work.

Oscar P.·

This article finally explained why some movies buffer and others do not. It was always the ones with embedded PGS subs. Bazarr + SRT replacement fixed my entire library.

Leave a comment

Never displayed publicly.
0 / 2000 · Supports limited Markdown: **bold**, *italic*, `code`, [link](url), lists, > quote.