From 7ecb16d4ebb0ca82ecd2464f10c4079f564c19fd Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Sun, 27 Sep 2026 18:02:37 +0200 Subject: [PATCH] =?UTF-8?q?autoAdjustQuality=20bricht=20die=20Plex-Wiederg?= =?UTF-8?q?abe=20=E2=80=94=20wieder=20raus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gemessen, nicht vermutet: zwei Anfragen an denselben Titel, getrennte Sitzungskennungen, einzige Abweichung der Wert. Ohne ihn kommt eine Playlist, mit ihm eine nackte **HTTP 400**. Die Zeile hätte also nicht die Qualität verbessert, sondern die Wiedergabe verhindert. Der Plan hat vor genau diesem Verhalten gewarnt — nur habe ich es am Entscheider vermutet und ihn dort ausgespart, während die Start-Adresse ihn ebenso ablehnt. Plex' eigene Clients schicken den Wert; welche weitere Angabe sie dabei mitführen, ist offen. Bis das gemessen ist, bleibt er draußen: eine Leiter, die es vielleicht gibt, ist keinen Strom wert, der sicher nicht läuft. `TranscodeRequest.adaptive` bleibt samt seinen Tests bestehen. Das Gerüst steht, es fehlt die richtige Beschwörungsformel. Co-Authored-By: Claude Opus 5 --- .../Sources/PlexKit/PlexBackend.swift | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/Packages/FlixyKit/Sources/PlexKit/PlexBackend.swift b/Packages/FlixyKit/Sources/PlexKit/PlexBackend.swift index f6b102b..94e77bb 100644 --- a/Packages/FlixyKit/Sources/PlexKit/PlexBackend.swift +++ b/Packages/FlixyKit/Sources/PlexKit/PlexBackend.swift @@ -167,10 +167,24 @@ public struct PlexBackend: MediaBackend { throw .refused(reason: decision.explanation ?? "") } - // Erst für die Adresse, die wirklich gespielt wird. - let start = transcode.prefersAdaptive ? request.askingForLadder() : request - guard let url = server.transcodeURL(for: start) else { throw .notFound } - return PlaybackTarget(url: url, sessionID: start.sessionIdentifier) + // **`autoAdjustQuality` wird nicht geschickt — gemessen, nicht vermutet.** + // + // Die Zeile stand hier und ist wieder raus. Gegen den Testserver + // beantwortet Plex dieselbe Anfrage mit dem Wert mit einer nackten + // **HTTP 400**, ohne ihn mit einer Playlist. Zwei Anfragen, getrennte + // Sitzungskennungen, sonst identisch — der Wert ist die einzige + // Abweichung. + // + // Damit hätte er nicht die Qualität verbessert, sondern die + // Wiedergabe verhindert. Plex' eigene Clients schicken ihn; welche + // weitere Angabe sie dabei mitgeben, ist offen. Bis das gemessen ist, + // bleibt er draußen: eine Leiter, die es vielleicht gibt, ist keinen + // Strom wert, der sicher nicht läuft. + // + // `TranscodeRequest.adaptive` bleibt samt Tests bestehen — das + // Gerüst steht, es fehlt die richtige Beschwörungsformel. + guard let url = server.transcodeURL(for: request) else { throw .notFound } + return PlaybackTarget(url: url, sessionID: request.sessionIdentifier) } public func endPlayback(sessionID: String) async {