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
@@ -218,10 +218,12 @@ struct LiveTVView: View {
|
||||
return
|
||||
}
|
||||
|
||||
// Den Server fragen, bevor der Player es versucht. Lehnt er ab, sagt
|
||||
// er im Klartext warum — der Player meldet nur, dass es nicht ging.
|
||||
if let verdict = await server.liveTVVerdict(for: stream) {
|
||||
tuneFailure = verdict
|
||||
// Den Server fragen, bevor der Player es versucht. Lehnt er
|
||||
// ausdrücklich ab, sagt er im Klartext warum — der Player meldet nur,
|
||||
// dass es nicht ging. Schweigt der Entscheider dagegen, wird trotzdem
|
||||
// gespielt: Live-Adressen kennt er womöglich gar nicht.
|
||||
if case .refused(let reason) = await server.liveTVVerdict(for: stream) {
|
||||
tuneFailure = reason
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user