Wiedergabe: die Plex-Kennung muss in die Adresse, nicht nur in die Kopfzeilen
HTTP 400 vom Transcoder. Die Kennung dieses Geräts reist bei jeder Anfrage als Kopfzeile mit — aber die Adresse des Stroms ruft nicht die App ab, sondern AVPlayer, und der schickt keine Kopfzeilen mit. Bei Dateien fällt das nicht auf; bei Live-TV schon: der Server legt die Sitzung unter der Gerätekennung an und kann die Abholung ohne sie keiner Sitzung zuordnen. Also trägt die Transcoder-Adresse die Kennung jetzt selbst. Das gilt für alle Ströme, nicht nur für Live — dort fiel es nur zuerst auf. Dazu: umgerechnet wird die Adresse der Sitzung, nicht die des Teils darin. Der Transcoder sucht sich den Teil selbst, deshalb steht dort -1. Und der Entscheider unterscheidet jetzt zwischen „nein" und „keine Antwort". Ein Schweigen als Ablehnung zu lesen hieße, eine funktionierende Sendung zu blocken, bloß weil er Live-Adressen womöglich gar nicht kennt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
861ca805a5
commit
8dba05b4f9
@@ -191,9 +191,13 @@ struct LiveTVGuideTests {
|
||||
let url = try #require(result.url)
|
||||
let items = try #require(URLComponents(url: url, resolvingAgainstBaseURL: false)?.queryItems)
|
||||
|
||||
#expect(items.first { $0.name == "path" }?.value == "/livetv/sessions/abc/stream")
|
||||
// Die Adresse der Sitzung, nicht die des Teils darin.
|
||||
#expect(items.first { $0.name == "path" }?.value == "/livetv/sessions/abc")
|
||||
// Ein laufender Sender hat keine Fassungen zur Auswahl.
|
||||
#expect(items.first { $0.name == "mediaIndex" }?.value == "-1")
|
||||
// Ohne die Gerätekennung in der Adresse kann der Server die Abholung
|
||||
// keiner Sitzung zuordnen: AVPlayer schickt keine Kopfzeilen mit.
|
||||
#expect(items.contains { $0.name == "X-Plex-Client-Identifier" })
|
||||
}
|
||||
|
||||
@Test("Der Raster-Schlüssel wird zuerst versucht, und nie ein ganzer Pfad")
|
||||
|
||||
Reference in New Issue
Block a user