Jellyfin springt von 10.11 auf 12.0. Dazwischen liegt kein verlorenes Jahr, sondern eine Entscheidung, die ich im Release-Post zweimal gelesen habe, weil sie so selten ist: Das Team streicht die führende Zehn, weil sie nie etwas bedeutet hat. Wörtlich: „The leading 10. never changed and never told anyone anything.“ Was 10.12 geworden wäre, heißt jetzt 12.0, und die Nummer, die wirklich zählt, steht endlich vorne. Eine Versionsnummer, die nichts sagt, wird abgeschafft. Ich habe selten so gern eine Zahl verschwinden sehen.

Kurz gesagt: Jellyfin 12.0 ist seit dem 08-09-2026 stabil verfügbar. Neu sind eine schnellere Datenbank für Playlists und Sammlungen, das Modern-Layout als Standard, Bücher, Comics und Hörbücher direkt im Server, FFmpeg 8.1 und eine Reihe Sicherheitsfixes. Dafür brechen alte Plugins und uralte Clients, und die Datenbank kennt nach dem Update keinen Weg zurück. Deshalb: erst Backup, dann Plugins raus, dann updaten, dann voller Bibliotheks-Scan. Stand: Jellyfin 12.0, geprüft am 09-09-2026.
Jellyfin auf 12.0 in vier Schritten: Backup ziehen, Plugins raus, Image tauschen, Bibliothek scannen
Der Weg auf 12.0: Backup, Plugins raus, Image tauschen, Bibliothek scannen.

Was in Jellyfin 12.0 neu ist

Die größte Änderung sieht man nicht, man merkt sie. Playlists, Sammlungen und Boxsets lagen bisher als ein einziger Datenklumpen in der Datenbank. Wer eine Playlist mit ein paar tausend Titeln öffnete oder einen Song darin verschob, ließ Jellyfin jedes Mal den ganzen Klumpen laden und neu schreiben. Ab 12.0 ist jeder Eintrag eine eigene Zeile. Blättern, Zählen und Umsortieren kostet dann nur noch die paar Einträge, die gerade auf dem Bildschirm sind. Der Release-Post nennt als Grund genau die eingefrorenen großen Playlists, über die sich Nutzer beschwert haben.

Datenbank-Migration? Jellyfin merkt sich alles über deine Bibliothek in einer Datei, der Datenbank. Wenn sich deren innerer Aufbau ändert, baut der Server beim ersten Start die Datei um, wie ein Umzug in ein neues Regal. Läuft der Umzug durch, passt alles. Ein Zurück ins alte Regal gibt es nicht; dafür brauchst du die Kopie von vorher.

Der Rest der Liste ist lang, deshalb nur, was daheim etwas ändert:

  • Episoden in mehreren Versionen. Was bei Filmen längst geht (1080p und 4K als eine Karte), klappt jetzt auch bei Serienfolgen.
  • Modern-Layout ist Standard. Die Oberfläche, die bisher „Experimental“ hieß, ist jetzt die normale. Die alte heißt Legacy und bleibt wählbar: in den Anzeige-Einstellungen deines Benutzers, an derselben Stelle, an der bisher „Experimental“ stand. Alle Themes hängen jetzt an einem gemeinsamen Grundgerüst aus CSS-Variablen; wer ein eigenes Theme pflegt, muss nachziehen.
  • Bücher, Comics, Hörbücher im Kern. Das Bookshelf-Plugin ist abgekündigt, seine Aufgaben übernimmt der Server: Metadaten aus OPF- und ComicInfo-Dateien, erzeugte Cover, Seitenzahlen, Kapitel in Hörbüchern, Serien und Bände aus dem Dateinamen. Der Web-Client bekommt dafür einen neuen Reader mit Wischgesten bei PDFs.
  • FFmpeg 8.1. Bessere Dolby-Vision-Varianten in HLS, VobSub-Untertitel, und Untertitel-Dateien können beim Transkodieren in die MKV eingebettet werden.
  • Suche und Empfehlungen aus Plugins. Plugins dürfen jetzt Suchtreffer und „Ähnliches“ beisteuern; für Musik liegt ListenBrainz gleich bei.
  • Kleinkram, der auffällt: eine Nachfrage „Schaust du noch?“ nach mehreren Folgen, Bild-für-Bild-Spulen im Player, Sprachfilter für Ton und Untertitel pro Bibliothek, und abgeschaltete Plugins bleiben nach einem Neustart abgeschaltet.

Dazu kommen Sicherheitsfixes, die der Release-Post ohne CVE-Nummern aufzählt: Pfadprüfungen an mehreren Stellen, an denen sich mit einem präparierten Dateinamen aus dem vorgesehenen Ordner hinausgreifen ließ, der Einrichtungsassistent lässt sich nicht mehr auf einem fertigen Server neu starten, der Plugin-Installer lehnt unsaubere Paketnamen ab, und ein XSS über Rollennamen von Darstellern ist zu. Wer seinen Jellyfin offen ins Internet stellt, hat damit einen Grund mehr, nicht lange zu warten. Wer ihn hinter einem Reverse Proxy oder VPN betreibt, hat Zeit, es richtig zu machen.

Was bricht: Plugins, alte Clients, doppelte Namen

Ein Major-Release darf Dinge kaputtmachen, und 12.0 tut das an drei Stellen, die dich treffen können.

Plugins. Der Server läuft jetzt auf .NET 10, und Plugins, die für 10.11 gebaut wurden, laden auf 12.0 nicht mehr. Der Release-Post sagt es ohne Umweg: Alles, was nicht eingebaut ist, vor dem Update entfernen und danach in der 12er-Fassung wieder installieren, sobald es eine gibt. Bei den Plugins aus dem offiziellen Katalog erwarte ich das zügig; bei Drittanbieter-Plugins hängt es am jeweiligen Entwickler, und der Post rechnet selbst damit, dass die Zeit brauchen.

Uralte Clients. Die Adressen /emby/ und /mediabrowser/, Erbstücke aus der Zeit, als Jellyfin noch ein Emby-Fork war, sind weg, und die alte Anmelde-Methode ist standardmäßig aus. Wer seine Apps aktuell hält, merkt davon nichts. Betroffen sind laut Post „Clients that have not seen an update in years“: der vergessene Client auf dem alten Fernseher, die App, die ihr Entwickler vor Jahren liegen gelassen hat. Wenn nach dem Update ein Gerät nicht mehr reinkommt, ist das der erste Verdächtige.

Benutzernamen. Namen sind jetzt unabhängig von Groß- und Kleinschreibung. Gibt es auf deinem Server ein „Anna“ und ein „anna“, bricht die Datenbank-Migration ab. Das prüfst du in einer Minute, und zwar vor dem Update, nicht danach.

Zwei kleinere Umzüge noch: Die Untertitel-Einstellungen wandern vom Server auf die einzelne Bibliothek, du stellst sie also pro Bibliothek neu ein. Und .ogg-Dateien gelten ab jetzt als Audio, nicht mehr als Video.

Solltest du updaten?

Ja, aber nicht heute Abend zwischen zwei Folgen. Mein Vorschlag, den du gern anders sehen darfst: Wer nur die eingebauten Plugins nutzt, macht das Update am Wochenende mit Backup und einem Kaffee für den Bibliotheks-Scan. Wer an Plugins hängt, schaut erst nach, ob es die schon für 12.0 gibt, und wartet sonst zwei, drei Wochen. Der Grund steht in den Release Notes: Die neue Datenbank lässt sich nicht zurückdrehen, nur aus dem Backup wiederherstellen. Ein Jellyfin ohne die Plugins, wegen derer man es liebt, ist für zwei Wochen erträglich; ein Jellyfin, das man wieder aus dem Backup holen muss, ist ein verlorener Sonntag.

Voraussetzung in jedem Fall: Du läufst auf 10.10.7 oder einer 10.11.x. Von dort geht der Sprung direkt. Wer älter ist, geht laut Post erst auf 10.10.7 und dann weiter.

Das Update mit Docker, Schritt für Schritt

Ich zeige den Weg für das offizielle Docker-Image, weil so die meisten von uns Jellyfin fahren. Bei einer Paket-Installation auf Debian oder Ubuntu ist der Ablauf derselbe, nur dass das Update über apt kommt und die zwei Ordner /var/lib/jellyfin und /etc/jellyfin gesichert werden statt einem.

So liest du diese Anleitung: Alles, was du selbst tun sollst, steht in einem farbigen Kasten. [ per klick ] heißt: Das erledigst du mit der Maus in einer Web-Oberfläche, hier das Jellyfin-Dashboard. [ über die shell ] heißt: Den Befehl kopieren, ins Terminal einfügen, Enter. Stehen beide Kästen direkt untereinander, führen sie zum selben Ergebnis. Du gehst EINEN davon, nicht beide.

1. Version prüfen. Im Dashboard steht oben die laufende Server-Version. Steht dort 10.10.7 oder 10.11.x, kannst du weiter.

Über das Benutzermenü oben rechts zu Dashboard. Die Versionsnummer steht ganz oben auf der Seite.

2. Plugins entfernen und Namen prüfen. Alles, was du selbst aus dem Katalog nachinstalliert hast, kommt raus. Danach ein Blick in die Benutzerliste: keine zwei Konten, die sich nur in Groß- und Kleinschreibung unterscheiden.

Dashboard, links Plugins: jedes nachinstallierte Plugin über sein Menü deinstallieren. Dann Dashboard, Users: die Namen durchsehen und Doppelgänger umbenennen.

3. Server stoppen und Backup ziehen. Die Doku sagt es in Großbuchstaben, und ich sage es leiser, aber genauso: Der Server muss stehen, sonst ist die Datenbank gesperrt und die Kopie womöglich unbrauchbar. Beim offiziellen Image liegt alles Wichtige in dem Ordner, den du in der Compose-Datei auf /config gemappt hast. Ich nehme im Beispiel /opt/jellyfin/config; setz deinen Pfad ein.

cd /opt/jellyfin
docker compose stop jellyfin
sudo cp -a config config.bak-10.11

Ob die Kopie vollständig ist, zeigt ein Größenvergleich. Beide Zahlen müssen gleich sein:

du -sh config config.bak-10.11

4. Image tauschen. In der Compose-Datei steht bei image: vermutlich jellyfin/jellyfin ohne Tag oder mit :latest. Beides holt laut Doku die aktuelle stabile Ausgabe, also 12.0. Ich würde trotzdem den Tag 12 eintragen; der folgt den 12.x-Ausgaben und macht keinen ungefragten Sprung auf 13. Datei öffnen, Zeile ändern, speichern mit Strg+O, Enter, schließen mit Strg+X.

nano compose.yaml
    image: jellyfin/jellyfin:12

Dann das neue Image holen und den Container neu bauen. Die Migration läuft beim ersten Start; die Doku warnt ausdrücklich davor, den Server währenddessen zu stoppen. Mit dem dritten Befehl schaust du zu, bis Ruhe einkehrt; raus kommst du mit Strg+C, der Container läuft weiter.

docker compose pull jellyfin
docker compose up -d jellyfin
docker logs -f jellyfin

5. Bibliothek komplett scannen. Ohne diesen Scan fehlen die alternativen Versionen deiner Filme. Er dauert diesmal deutlich länger als sonst, weil Jellyfin jeden Eintrag gegen die Datei auf der Platte prüft, und manche Filme tauchen danach als „neu hinzugefügt“ auf. Beides ist laut Post erwartet.

Dashboard, oben Scan All Libraries. Danach im Browser einmal Strg+Shift+R, damit die alte Oberfläche aus dem Cache verschwindet.

Geklappt hat es, wenn das Dashboard oben 12.0 zeigt. Ohne Login geht es über die öffentliche Statusabfrage des Servers:

curl -s http://192.168.178.20:8096/System/Info/Public

Steht in der Antwort bei Version eine 12 vorne, läuft dein Jellyfin auf der neuen Datenbank. Dann darfst du kurz stolz sein, und den Ordner config.bak-10.11 lässt du noch ein paar Wochen liegen. Er ist dein einziger Weg zurück.

Wie viele Plugins hängen bei dir an Jellyfin, und hat schon eins eine Fassung für 12.0? Und läuft irgendwo bei dir noch ein Client, der über /emby/ redet? Ab damit in die Kommentare.

Jeden Sonntag fasse ich im Newsletter zusammen, was in der Woche im Homelab passiert ist; das Update-Fenster für 12.0 kommt dort garantiert noch einmal vor.

Quellen