Jellyfin 12.0: Veröffentlichungshinweise

imagem 39

🚀 Veröffentlichungshinweise für 12.0

Hinweise zum Update

Vor einem Upgrade von einer früheren Version wird dringend empfohlen, ein vollständiges Backup des Datenverzeichnisses zu erstellen, da diese Version Datenbankänderungen enthält, die ein Zurückrollen ohne vollständige Wiederherstellung verhindern.

Direkte Upgrades von 10.10.7 und 10.11.x auf 12.0 werden unterstützt; Zwischenupgrades sind nicht erforderlich. Nutzer mit Versionen älter als 10.10.7 sollten zunächst auf 10.10.7 aktualisieren, bevor sie zu 12.0 migrieren.

Installierte Repository-Plugins (alles, was nicht eingebaut ist) sollten vor der Migration entfernt werden. Plugins benötigen wahrscheinlich Zeit, um sich an die neuen Datenbankänderungen anzupassen. Das erneute Hinzufügen nach der Migration ist der sicherste Ansatz für Tests.

Offizielle Plugins, die mit Jellyfin kompatibel sind, sind über das stabile Plugin-Repository verfügbar. Falls Sie das instabile Plugin-Repository verwenden, wechseln Sie bitte zurück.

Führen Sie nach der Migration folgende Schritte durch:

  • Starten Sie einen vollständigen Bibliotheksscan, um alternative Versionen wiederherzustellen.

Wenn Sie auf Probleme stoßen, stellen Sie Fehlerberichten bitte „[12.0]“ voran.

Paketierung

  • Debian-Bullseye- und Ubuntu-Focal-Pakete werden nicht mehr erstellt.

Server

Diese Version bringt erhebliche Leistungsverbesserungen mit sich. Es wird eine vollständige pfadbasierte Prüfung aller Bibliothekselemente durchgeführt, um Überbleibsel zu bereinigen – je nach Größe kann dies einige Zeit in Anspruch nehmen. Alternative Versionen von Medien, die automatisch aufgelöst (nicht manuell zusammengeführt) wurden, werden aufgrund von Datentypproblemen entfernt. Ein vollständiger Bibliotheksscan nach dem Upgrade ist daher erforderlich, um diese wiederherzustellen. Der erste Scan dauert deutlich länger als gewöhnlich, und einige Filme könnten als neu hinzugefügt erscheinen, da Typfehler beim Scan behoben werden.

Zu den weiteren Neuerungen gehören: Mehrere Versionen für Episoden, Ähnlichkeits- und Empfehlungsanbieter, Suchanbieter (Plugins können die Suchergebnisproduktion erweitern oder ersetzen), Verbesserungen bei SchedulesDirect und EPG-Aktualisierungen, Korrekturen im Altersfreigabesystem, ordnungsgemäße Datenbereinigung beim Ersetzen/Löschen von Dateien, Unterstützung für dreistellige Episodennummern, bibliotheksspezifische BoxSet- und Wiedergabelistenfilterung, Unterstützung für CACHEDIR.tag und den Accept-Language-Header, VideoRotation-Profilbedingung für Android-TVs, die keine Rotationsmetadaten unterstützen, Auslesen von Anbieter-IDs aus Staffel- und Episodenordner/-dateinamen, Aliasnamen tmdb, tvdb, imdb für die Provider-IDs, Unterstützung für geschweifte Klammern und Klammern beim Parsen von Attributwerten, neue Filter NameStartsWith und NameLessThan für die Personensuche, neue Filter für Audio- und Untertitelsprachen, OriginalLanguage als Option für PreferredAudioLanguage, eine Sammlungs-API für die „Enthalten in“-Funktion, Unterstützung für VobSub-Untertitelströme sowie einen Tmdb-Anbieter für fehlende Episoden.

Wichtige Änderungen und Verhaltensänderungen

Legacy-Routenpräfixe (/emby/* und /mediabrowser/*) wurden entfernt. Alte Drittanbieter-Clients, die darauf angewiesen sind, funktionieren nicht mehr. Die Legacy-Autorisierung ist standardmäßig deaktiviert, und eine Migration deaktiviert sie auch bei bestehenden Installationen. Veraltete API-Routen wurden entfernt, darunter POST /Users/{userId}/EasyPassword (die EasyPassword-Funktion entfällt), GET /Items/{itemId}/CriticReviews, GET /Environment/NetworkShares, POST /System/MediaEncoder/Path, GET /LiveTv/Recordings/Groups/{groupId} und GET /QuickConnect/Initiate. Die globale Untertitelkonfiguration wurde entfernt; Untertiteleinstellungen werden nun pro Bibliothek vorgenommen. .ogg wird nicht mehr als Videoerweiterung, sondern nur noch als Audio behandelt; .aifc wird als Audio erkannt, und .aiff wird nicht mehr als Bild betrachtet. Symlinks werden nur noch zur Wiedergabezeit aufgelöst. Die Sortierung nach Name verwendet jetzt SortName und CleanName; dieselbe Bereinigungslogik wird auf ForcedSortName angewendet. Die Bibliotheksreihenfolge kann sich im Vergleich zu 10.11 ändern. Bildendpunkte skalieren nicht mehr über die Quellauflösung hinaus; niedrig aufgelöste Artworks werden in ihrer tatsächlichen Größe gerendert. Die Groß-/Kleinschreibung von Benutzernamen kann nun geändert werden. Benutzernamen werden in einer normalisierten Spalte mit eindeutigem Index gespeichert; Installationen mit Benutzernamen, die sich nur durch Groß-/Kleinschreibung unterscheiden, müssen vor dem Upgrade korrigiert werden.

Datenbank und Leistung

Wiedergabelisten und Sammlungen sind jetzt ordnungsgemäß relational und verwenden eine neue LinkedChildren-Tabelle statt serialisierter Kinderlisten. OwnerId und PrimaryVersionId sind echte GUID-Fremdschlüssel; ExtraIds wurde entfernt. Zahlreiche Optimierungsmigrationen decken Elementanzahl, Elementnamen, Typ und bereinigten Namen, neueste Elemente, Bildinformationen und primäre Versions-ID ab. Migrationsroutinen bereinigen vorhandene Daten beim ersten Start: doppelte Musikinterpreten und Personen werden zusammengeführt, verwaiste Extras und externe Daten entfernt, falsche Besitzverhältnisse repariert und bereinigte Namen, erzwungene Sortiernamen und Serienpräsentationsschlüssel neu berechnet. Schwere Datenbankaufgaben werden nicht mehr während eines laufenden Bibliotheksscans ausgeführt. Schnellere Abfragen für Fortsetzen, Als Nächstes, erneutes Ansehen, neueste Elemente für Musik, Wiedergabelisten und Sammlungen, Künstlersuche und Elementanzahl. Das Löschen von Elementen wird gestapelt, wodurch Fehler „zu viele SQL-Variablen“ beim Löschen großer Mengen behoben werden. jellyfin.db kann nun an einem benutzerdefinierten Pfad gespeichert werden.

Betrieb

Neues Startflag --mode mit den Optionen MediaServer, MigrateSystem und SeedSystem, das Migrationen oder Datenbank-Seeding ohne Start des Servers ermöglicht – nützlich für containerisierte und orchestrierte Bereitstellungen sowie kontrollierte Upgrades. Die Startoberfläche wurde überarbeitet und zeigt nun Versions- und Aktivitätsinformationen an. Deaktivierte Plugins werden beim Neustart nicht mehr automatisch wieder aktiviert. Vollständige Systemsicherungen überspringen korrupte Keyframe-Zeilen statt fehlzuschlagen.

Medien und Untertitel

Die Untertitelerstellung läuft jetzt über SubtitleEdit, wodurch die SSA-zu-ASS-Konvertierung und der Verlust von Stilen vermieden werden. Externe Untertitel können beim Transkodieren in MKV eingebettet werden. Das Zeitlimit für die Untertitelextraktion ist konfigurierbar. Client-gerenderte grafische Untertitel sind während des Remux erlaubt. Korrekturen für Race Conditions bei gleichzeitiger Untertitelkonvertierung, Cache-Invalidierung beim Ersetzen eines Untertitels und Hängenbleiben von FFmpeg während der Extraktion. Neue Konfigurationsoption HlsAudioSeekStrategy. Trickplay: vorhandene Dateien werden beim Scan erkannt, Duplikate von Interlaced-Videos behoben, ungültige PTS-Werte aus Containern normalisiert und der Cache nach einem Fehler bereinigt.

Live-TV

Live-TV liefert keine unerreichbaren „server-lokalen“ Streaming-URLs mehr an Clients aus. XMLTV-Hintergrundbilder und Episoden-Thumbnails werden jetzt importiert. XMLTV-Guide-Importe überspringen Programme, deren Daten sich nicht geändert haben, anhand eines ETags, der aus den tatsächlich konsumierten Feldern berechnet wird – wiederholte Guide-Aktualisierungen werden dadurch erheblich günstiger. Andere Listungsanbieter bleiben beim bisherigen feldweisen Update-Pfad.

Metadaten und Anbieter

ListenBrainz ist jetzt im Server gebündelt und liefert ähnliche Künstlerdaten mit wählbarem Ähnlichkeitsalgorithmus. TVDB-Anbieter-IDs werden für Filme unterstützt. AudioDb-Künstlersuche. ReplayGain-Album-Gain wird ausgelesen. MusicBrainz-Lookups sind widerstandsfähiger. WEB-DL-Release-Tags werden in Dateinamen erkannt. Bindestrichzahlen in Episodentiteln werden nicht mehr als Multi-Episoden-Dateien geparst. Die 3D-Formaterkennung funktioniert, wenn das Tag das letzte Token des Pfads ist. Personen-Metadatenaktualisierungen werden in eine Warteschlange gestellt, statt die Anfrage zu blockieren.

Transcoder

Neue Upstream-Version von FFmpeg 8.1. Optimierte Leistung des CUDA-Transponierfilters, des OCL-Skalierungsfilters und des OCL-Tonemapping-Filters auf Mali-GPU. Verwendung von EOTF aus BT 2446 Methode B für HLG-Tonemapping. Behebung potenzieller Audio/Video-Desynchronisation in HLS beim Transkodieren von Video bei gleichzeitigem Remux von Audio. Vermeidung der SSA-zu-ASS-Konvertierung und des Stilverlusts. Hinzufügen einer spezifikationskonformen dvh1-HLS-Variante für DoVi P5 zur Kompatibilität.

Web

Das moderne Layout ist jetzt Standard; das vorherige Layout heißt jetzt Legacy. Aktualisierte Ansichten für Musikvideos, gemischte Medien, Sammlungen & Wiedergabelisten und Bücher. Hinzufügen einer „Weiterschauen“-Aufforderung. Verzögerungseinstellung für Diashows. Caching von Abfragen in der indexierten Datenbank für den TanStack-Query-Client zur Verbesserung der Ladeleistung. Watch-Funktion im Log-Viewer. , und . als Steuerung zum bildgenauen Vor-/Zurückspulen. Filter für Audio- und Untertitelsprachen (nur modernes Layout). Sammlungs- und Wiedergabelisten-Tab in allen Bibliotheken. Sammlungen auf der Artikeldetailseite. Ersetzung von libpgs durch libbitsub mit Unterstützung für VobSub-Rendering. Zusammenführung von Karten für Crewmitglieder mit mehreren Rollen.

Layout und Themen

Alle Themen basieren nun auf einer gemeinsamen Basis, die auf CSS-Variablen aufbaut, einschließlich Dark, Light, WMC, Blue Radiance, Apple TV und Purple Haze. Benutzerdefinierte Themen müssen möglicherweise angepasst werden. Die Bibliothekssymbolleiste wurde in die App-Leiste integriert, mit einem klebrigen Bibliothekskopf und Designpolitur in der gesamten Bibliothek. Benutzerdefinierte Links können zum modernen Layout hinzugefügt werden. Die Bildschirmschoner-Zeiteinstellung ist jetzt im modernen Layout verfügbar.

Bibliotheken und Durchsuchen

Sammlungs- und Ordner-Tabs für Buchbibliotheken sowie eine Ordneransicht im modernen Heimvideo-Layout. Standard-Tabs für Heimvideos- und Fotobibliotheken. Studiosuche und ein erweiterter Studios-Tab. „Alle abspielen“- und „Zufallswiedergabe“-Schaltflächen in der Serienbibliothek; beide sind deaktiviert statt ausgeblendet, wenn keine Elemente verfügbar sind. Verbesserte „Demnächst“-Ansicht. Sortieren und Filtern auf der Aktivitätsseite. Eine Schaltfläche „Filter zurücksetzen“ im Filter-Dropdown. Ordner können als abgespielt markiert werden. Serienersteller werden auf der Artikeldetailseite angezeigt. Ähnlichkeitsanbieter können pro Bibliothek konfiguriert werden. Seitensteuerung wird ausgeblendet, wenn die Seitenumbruchfunktion deaktiviert ist.

Wiedergabe

Das Wiedergabe-Info-Overlay ist kompakter und zeigt mehr Details. Kapitelnamen werden im OSD-Schieberegler-Bubble angezeigt. Biterkennung läuft jetzt im Web. Dolby Vision in MKV auf webOS 25 und neuer. AV1-fMP4-Stream-Kopie auf TV-Clients. Direkte Wiedergabe von anamorphotischem Video auf Tizen sowie gelockerte anamorphotische Einschränkungen für Browser-Geräteprofile. Auf iOS läuft die Hintergrundwiedergabe weiter, wenn der Bildschirm ausgeschaltet wird; die Audionormalisierung ist deaktiviert, um Tonhöhen- und Geschwindigkeitsprobleme zu beheben. libbitsub aktualisiert auf v1.11.0 mit HLS-Offset-Korrektur. Der Bildschirmschoner wird beim Betrachten von Fotos oder beim Lesen unterdrückt.

TV und Fernbedienung

Navigation mit Gamecontroller korrigiert; die Wiederholrate des Gamepads ist nicht mehr an die Bildrate gebunden. Tastatursteuerung funktioniert auf nicht-lateinischen Tastaturlayouts, mit zusätzlichen Korrekturen für ältere Browser. Befehle für Rücklauf und Vorspulen werden verarbeitet. SyncPlay-Menü aktualisiert; der SyncPlay-Ping wird jetzt an den Server gemeldet. Stilisierung von fokussierten und markierten Checkboxen im TV-Layout.

Unter der Haube

WebSockets wurden auf SDK-Abonnements migriert. Die React- und TypeScript-Migration wird bei den Seiten für Bibliotheken, Live-TV und Netzwerk fortgesetzt; die Dashboard-Benutzerseiten verwenden jetzt das TypeScript-SDK. TanStack Query unterstützt jetzt Benutzereinstellungen und Startbildschirmabschnitte; der Query-Cache wird beim Serverneustart geleert.

Bemerkenswerte Fehlerbehebungen

Unscharfe Kartenbilder auf hochauflösenden Displays; Kartengrößen werden aufgerundet. Doppelte /socket-Verbindungen. Login-Schleife, Verbindung zum falschen Server bei mehreren konfigurierten Servern und Auswahl des nativen Shell-Servers beim Abmelden. Ungültige Anfrage für alle Elemente beim Laden der Seite. Standard-Landing-Tab für Live-TV. Halten und Ziehen von Medien aktiviert nicht mehr die Mehrfachauswahl. Warnung vor Wiederherstellung einer Version, Warnung beim Starten eines Backups während eines laufenden Scans, und automatischer Bibliotheksscan, wenn Ordner zu einer Bibliothek hinzugefügt werden.

Sicherheit

Server:

  • Pfadvalidierung wurde zu den Legacy-HLS-Segmentendpunkten und zum Plugin-Bildendpunkt hinzugefügt, sodass eine angeforderte Datei innerhalb des Transkodierungsverzeichnisses liegen muss.
  • Pfaddurchquerungs-Härtung wurde auf Bild- und Plugin-Endpunkte sowie auf die Benutzernamen-Pfadbehandlung ausgeweitet und baut auf den in 10.11.x veröffentlichten Korrekturen auf.
  • Der Startassistent kann bei einem fehlkonfigurierten Server nicht mehr ohne Authentifizierung erneut ausgeführt werden.
  • Unsichere Plugin-Paketnamen werden vom Plugin-Installationsprogramm abgelehnt.
  • Kindersicherungsfilterung wird auf zusätzliche Endpunkte angewendet; die Sichtbarkeit von Wiedergabelisten wurde korrigiert, der Nicht-Admin-Zugriff auf weitere Teile behoben, und Personen sind von der Sichtbarkeitsprüfung für erlaubte Tags ausgenommen.

Web:

  • Cross-Site-Scripting über Personenrollen.
  • Auth-Parameter werden beim Erstellen von API-Clients kodiert.
  • Der Login-Haftungsausschluss erlaubt nur gängige Link-Protokollschemata.

Bücher

Bücher standen in Jellyfin oft im Hintergrund, aber das soll sich ändern. Wir haben eine konzertierte Anstrengung begonnen, um die Buchunterstützung in der API und den offiziellen Clients zu verbessern. eBook- und Comic-Unterstützung reift noch, aber das ODPS-Plugin ermöglicht den direkten Zugriff aus einer Vielzahl beliebter Selfhosted-Programme. Beiträge in allen Repositories sind daher äußerst willkommen – von Serververbesserungen über Dokumentationsänderungen bis hin zu Drittanbieter-Clients für die Buchwiedergabe. Eine Kombination aus eBook-, Comic- und Hörbuchunterstützung ist auf folgenden Clients verfügbar.

Offiziell: Web, iOS, Android, Desktop, Roku, Kodi, JMP
Community: JellyBook, Symfonium, Jellium, Plappa

Eine bemerkenswerte Auslassung im Server sind Buchserien als eigenständige Entitäten, die es nicht in diese Version geschafft haben. Bis sie hinzugefügt werden, können Sie das Folio-Plugin verwenden, um sie als Sammlungen anzuzeigen. Es funktioniert ähnlich wie das TMDb Box Sets-Plugin, gilt aber nur für eBooks.

Ein weiteres in Entwicklung befindliches Feature sind Hörbuchkapitel, die derzeit nur über die API verfügbar sind. Das bedeutet, dass die Client-Unterstützung jetzt möglich ist – Sie sollten sie also vor dem nächsten Server-Release in Ihrem bevorzugten Hörbuch-Client sehen.

HINWEIS: Das Bookshelf-Plugin wurde als veraltet markiert; seine Funktionen wurden in den Server integriert oder in die ComicVine- und GoogleBooks-Anbieter extrahiert.

Server-Änderungen

  • Bookshelf wurde in separate GoogleBooks- und ComicVine-Anbieter aufgeteilt.
  • Lokale Buchanalyse wurde verbessert und ist ohne Plugins verfügbar:
    • Buchmetadaten werden direkt aus OPF- und ComicInfo-Dateien oder ComicBookInfo-Kommentaren extrahiert.
    • Externe Cover werden jetzt für Hörbuchdateien unterstützt.
    • Poster werden für EPUBs und alle unterstützten Comic-Archive generiert.
    • Name, Index, Jahr und Serie werden aus Buchdateinamen geparst.
    • Sowohl Band als auch Kapitel sind in der API verfügbar, wenn sie in Comic-Dateinamen vorkommen.
    • Seitenzahlen werden aus Comic-Archiven und PDFs extrahiert.
    • Erstellernamen aus OPF-Daten werden auf ein gemeinsames Format normalisiert.
  • Ein neues OpenLibrary-Plugin wurde für Metadaten und Bilder erstellt.
  • ISBN-Externe IDs und Links werden unterstützt.
  • Kapitel werden jetzt aus Hörbüchern extrahiert.

Web-Änderungen

  • Modernes Buchbibliothekslayout mit Ansichtstypen und Seitenumbruch.
  • Bücher zeigen Informationen über ihre Autoren an und umgekehrt.
  • Die Wiedergabeoberfläche wurde überarbeitet und für alle Buchtypen vereinheitlicht.
  • Fortschrittsanzeige ist für unterstützte eBooks wieder aktiviert.
  • Sortierung von Büchern nach Indexnummer, Erscheinungsdatum usw. ist jetzt möglich.
  • Schriftgrößenauswahl für EPUB-Dateien wurde verbessert.
  • Hintergrundwiedergabe von Hörbüchern funktioniert auf iOS-Geräten.
  • Autoren-, Sammlungs- und Ordner-Tabs wurden zu Buchbibliotheken hinzugefügt; Hörbücher erscheinen unter Autoren.
  • Vollbildverhalten ist über alle Buchplayer vereinheitlicht; PDFs unterstützen Wisch-Navigation.

Entwickler

API-Änderungen

Die API erlaubt standardmäßig keine veralteten Autorisierungsmechanismen mehr. Clients und Tools müssen migrieren, falls noch nicht geschehen. Weitere Details finden Sie unter der zugehörigen PR (nicht verlinkt).

Es gab eine Reihe weiterer Änderungen an den SDK-Bibliotheken und der API im Rahmen der laufenden Bemühungen, die API besser für die Client-Nutzung zu dokumentieren. Bitte beachten Sie Folgendes zur API-Unterstützung. Eine vollständige Erläuterung unserer Richtlinie für API-Änderungen wird in den kommenden Monaten zur Entwicklerdokumentation hinzugefügt.

  • Wenn ein Endpunkt nicht in der OpenAPI-Spezifikation aufgeführt ist, sollte er von Clients nicht verwendet werden.
    • Bestimmte Endpunkte sind aus Legacy-Gründen weiterhin verfügbar, obwohl sie aus der OpenAPI-Spezifikation ausgeschlossen sind.
    • Diese können in jedem Major-Release ohne Vorwarnung entfernt werden.
  • Wenn ein Endpunkt oder Parameter in der OpenAPI-Spezifikation als obsolet markiert ist, sollte er von Clients nicht verwendet werden.
    • Gleiche Erklärung wie oben.
  • Als allgemeine Regel gilt: Veraltungen werden für einen gesamten (Major-)Release-Zyklus als solche markiert, bevor der veraltete Endpunkt oder Parameter entfernt werden kann.

Verhaltensänderungen, die Clients beachten sollten:

  • GetItems ist jetzt asynchron und wendet recursive an, wenn Filter angefordert werden, beschränkt auf Anfragen mit includeItemTypes. Dieselbe Abfrage kann ein anderes Ergebnisset als in 10.11 liefern.
  • ItemByName-Antworten sind eingeschränkt und Personen werden dedupliziert.
  • Neu als obsolet markiert, aber weiterhin funktionsfähig, mit Ersatz:
    • GetTrailersGetItems mit includeItemTypes=Trailer
    • GetArtists und GetAlbumArtistsGetPersons
    • GetArtistByNameGetPerson
    • GetMusicGenreGetGenre
    • GetInstantMixFromMusicGenreById und GetInstantMixFromMusicGenreByNameGetInstantMixFromItem
    • GetStartupConfiguration, UpdateInitialConfiguration und SetRemoteAccess → Konfigurationsendpunkte
    • GetRecordingsSeries
    • UserDto.HasPassword ist als obsolet markiert und liefert keine nützlichen Informationen mehr.
  • Die HLS-Controller sind aus der Spezifikation ausgeblendet.

Plattform

  • Der Server zielt jetzt auf .NET 10. Plugins müssen neu ausgerichtet und neu erstellt werden.
  • Swashbuckle wurde auf v10 aktualisiert, was das generierte OpenAPI-Dokument ändert; SDKs müssen neu generiert werden.
  • jellyfin-web wird jetzt mit Node 24 LTS und npm 11 gebaut.

Plugin-Änderungen

  • ISearchEngine wurde durch ISearchManager ersetzt, und SearchEngine durch SearchManager zusammen mit SqlSearchProvider.
  • Entfernt: NowPlayingQueueFullItems, DtoExtensions.AddClientFields, Jellyfin.Extensions.AlphanumericComparator, die ISubtitleWriter-Familie von Untertitelschreibern sowie SubtitleOptions mit SubtitleConfigurationFactory.
  • ServerConfiguration.EncoderPreset ist nicht mehr nullable.
  • IAuthenticationProvider.HasPassword wurde entfernt.
  • IPasswordResetProvider.StartForgotPasswordProcess nimmt den eingegebenen Benutzernamen und einen nullable Benutzer entgegen.
  • IUserManager: Die Eigenschaften Users und UsersIds sind jetzt die Methoden GetUsers und GetUsersIds; RenameUser, ResetPassword und ChangePassword nehmen eine Benutzer-ID statt eines User-Objekts. GetFirstUser wurde hinzugefügt.
  • Mehrere IItemRepository-Mitglieder wurden in neue Dienste verschoben: Elementspeicherung und -löschung sowie UpdateInheritedValues zu IItemPersistenceService, Zählungen zu IItemCountService und Next-Up-Serienschlüssel zu INextUpService.
  • IPeopleRepository.GetPeople und ILibraryManager.GetPeopleItems geben ein QueryResult zurück; IDtoService.GetBaseItemDtos und ILibraryManager.DeleteItemsUnsafeFast haben neue Signaturen.
  • IDirectoryService.GetFilePaths nimmt kein sort-Argument mehr; die IPathManager-Getter für Untertitel- und Anhangspfade sind jetzt nullable.

Neue Plugin-APIs

Diese Version fügt mehrere Erweiterungspunkte hinzu, in die Plugins zuvor nicht eingreifen konnten.

  • Suchanbieter. Plugins können nun an der Suche selbst teilnehmen, nicht nur an der Metadatenauflösung. ISearchProvider exponiert Name, Type, Priority und CanSearch(SearchProviderQuery), mit IInternalSearchProvider für Anbieter, die die lokale Bibliothek durchsuchen, und IExternalSearchProvider für Anbieter, die SearchResult-Elemente von einem entfernten Dienst streamen. Anbieter werden über ISearchManager.AddParts registriert und in Prioritätsreihenfolge konsultiert, sodass ein Plugin den eingebauten SqlSearchProvider erweitern oder übernehmen kann.
  • Ähnlichkeits- und Empfehlungsanbieter. ISimilarItemsProvider wird von ILocalSimilarItemsProvider, IRemoteSimilarItemsProvider und IBatchLocalSimilarItemsProvider geerbt, jeweils mit generischer Variante, sodass ein Anbieter den von ihm behandelten Elementtyp deklarieren kann. Anbieter werden pro Bibliothek über LibraryOptions.SimilarItemProviders und SimilarItemProviderOrder ausgewählt und geordnet; ISimilarItemsManager ruft auch Filmempfehlungen ab. Der gebündelte ListenBrainz-Anbieter basiert darauf.
  • Comic-Metadatenanbieter. IComicProvider (ReadMetadata und HasItemChanged) ermöglicht es einem Plugin, Comic-Metadaten neben den eingebauten ComicInfo- und ComicBookInfo-Lesern bereitzustellen.
  • Kapitel für jeden Elementtyp. IChapterManager.SaveChapters nimmt jetzt ein BaseItem statt eines Video entgegen und hat eine Supports(BaseItem)-Prüfung erhalten. Dies ermöglicht Hörbuchkapitel und erlaubt Plugins, Kapitel für Nicht-Video-Elemente zu speichern.
  • Passwort-Resets für unbekannte Benutzer. IPasswordResetProvider.StartForgotPasswordProcess erhält jetzt den eingegebenen Benutzernamen zusammen mit einem nullable Benutzer, sodass ein Anbieter eine Anfrage für einen dem Server unbekannten Benutzernamen bearbeiten oder den Reset an einen externen Anbieter weitergeben kann.
  • Mediensegment-Bereinigung. IMediaSegmentProvider.CleanupExtractedData wird aufgerufen, wenn die Daten eines Elements entfernt werden, sodass Segmentanbieter ihre eigenen extrahierten Dateien löschen können.
  • Schedules Direct. ISchedulesDirectService exponiert verfügbare Länder, Dienstverfügbarkeit und den Status des täglichen Bildlimits, sodass Live-TV-Plugins diese nicht mehr neu implementieren müssen. ITunerHostManager.DeleteTunerHost ermöglicht das Entfernen eines Tuners.
  • Alternative Versionen und verknüpfte Kinder. Da verknüpfte Kinder jetzt relational sind, exponiert ILibraryManager ResolveAlternateVersion, GetLocalAlternateVersionIds, GetLinkedAlternateVersions, GetItemIdsWithAlternateVersions und UpsertLinkedChild. Plugins, die Versionsverknüpfungen über serialisierte Elementdaten manipuliert haben, müssen auf diese umsteigen.
  • Batch-APIs für Massenoperationen. IUserDataManager erhielt GetUserDataBatch, GetResumeUserData, GetResumeUserDataBatch und ResetPlaybackStreamSelections. ILibraryManager erhielt GetPeopleByItems, GetPeopleNamesByItems und GetNextUpEpisodesBatch. IItemCountService bietet gestapelte Kind- und Gespielt/Gesamt-Zählungen.
  • Lokalisierung. ILocalizationManager.GetServerLocalizedString und GetLanguageDisplayName ermöglichen Plugins die Lokalisierung gegen die Server-Locale.
  • ICollectionManager.GetCollectionsContainingItem unterstützt die „Enthalten in“-Funktion, und IPlaylistManager.AddItemToPlaylistAsync nimmt eine Position entgegen, sodass Elemente oben in einer Wiedergabeliste eingefügt werden können.

IHasEmbeddedImage ist ebenfalls neu, aber nur für Plugins gedacht, die in den Server kompiliert werden; externe Plugins sollten ihre Bilder weiterhin über imagePath in meta.json deklarieren.

TLS-Konfiguration

In den vorherigen Versionshinweisen 10.11.0 wurde die Abschaffung der integrierten TLS-Zertifikatsbehandlung für diese Version angekündigt. Diese Änderung wurde auf eine zukünftige Version verschoben.


Diskutieren Sie diese Version weiter in unseren Foren.

Änderungsprotokoll (Zusammenfassung)

Das vollständige Änderungsprotokoll umfasst 460 Einträge. Die wichtigsten Änderungen lassen sich wie folgt zusammenfassen:

Sicherheit: Behebung einer potenziellen FFmpeg-Argument-Injection über nicht maskierte Untertiteldateipfade. Zusätzlich wurden Pfadvalidierungen und Härtungen gegen Pfaddurchquerung in mehreren Endpunkten vorgenommen.

Server-Kern: Zahlreiche Leistungsverbesserungen durch optimierte Abfragen, Stapelverarbeitung und Datenbankmigrationen. Die Verwaltung von alternativen Versionen und verknüpften Kindern wurde grundlegend überarbeitet. Viele Fehlerbehebungen bei der Medienanalyse, Metadatenverarbeitung, Live-TV und SyncPlay. Neue Funktionen wie die Unterstützung dreistelliger Episodennummern, Tmdb-Anbieter für fehlende Episoden und VobSub-Untertitel.

Transkodierung: Aktualisierung auf FFmpeg 8.1, Optimierungen für CUDA/OCL, HLG-Tonemapping nach BT 2446 Methode B, Vermeidung von SSA/ASS-Konvertierung, dvh1-HLS-Variante für Dolby Vision P5 und verschiedene Fixes für HLS und Untertitel.

Web-Client: Modernes Layout als Standard, viele UI-Verbesserungen, neue Filter und Ansichten, Performance-Steigerungen durch Query-Caching, Unterstützung für VobSub-Rendering und zahlreiche Fehlerbehebungen bei Wiedergabe, Navigation und TV-Layout.

Bücher: Deutliche Verbesserung der Buchunterstützung, einschließlich lokaler Metadatenanalyse, OpenLibrary-Plugin, Hörbuchkapiteln und überarbeiteter Web-Oberfläche für Bücher.

Entwickler: Umfangreiche API-Änderungen, neue Plugin-APIs für Suche, Ähnlichkeit, Comics, Kapitel und mehr, sowie Umstellung auf .NET 10 und Node 24 LTS.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert