Live-TV: es waren zwei verschiedene UUIDs
Die vollständige Sitzung zeigt es nebeneinander:
Tune-Antwort: …/sessions/df16c509…/B5080949-E767-…/index.m3u8
Sitzung selbst: …/sessions/df16c509…/2F3939E2-6196-…/index.m3u8
Dieselbe Adresse, aber mit verschiedenen Kennungen darin: die
Tune-Antwort setzt die Sitzungskennung ein, die Sitzung selbst die
Gerätekennung. Nur die zweite gibt es wirklich. Ich habe die erste
genommen — daher jedes Mal 404.
Gesehen habe ich das erst, als die Antwort nicht mehr bei 700 Zeichen
abgeschnitten war. Genau dort fing `Part` an.
Dieselbe Antwort trägt auch `TranscodeSession` — der Strom läuft bereits.
Es gab nie etwas umzurechnen, und der Transcoder hatte recht, jede dieser
Anfragen abzulehnen.
Die Abspieladresse kommt jetzt ausschließlich aus der Sitzung.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
008f6b7fd7
commit
5e1a878237
@@ -702,6 +702,22 @@ extension PlexServer {
|
||||
),
|
||||
]
|
||||
|
||||
// Die Sitzung selbst fragen — und **nur** ihr die Abspieladresse
|
||||
// glauben. Die Antwort auf das Belegen nennt eine Adresse mit der
|
||||
// Sitzungskennung darin; die Sitzung nennt dieselbe Adresse mit der
|
||||
// **Gerätekennung**. Nur die zweite gibt es wirklich. Ich habe die
|
||||
// erste genommen und mich über 404 gewundert.
|
||||
if let sessionKey = Self.firstSessionKey(in: data),
|
||||
let sessionData = try? await client.send(
|
||||
PlexRequest(path: sessionKey, timeout: .seconds(20))
|
||||
),
|
||||
let livePart = Self.firstPartKey(in: sessionData),
|
||||
let direct = directStreamURL(forPath: livePart) {
|
||||
let outcome = await probeStream(url: direct)
|
||||
probes.append(ChannelProbe(path: "\(livePart) (aus der Sitzung)", result: outcome))
|
||||
if outcome.hasPrefix("HTTP 200") { return (direct, subscription, probes) }
|
||||
}
|
||||
|
||||
// Abwarten, bis der Empfänger abgestimmt hat. Er meldet
|
||||
// `status: inprogress` und `currentSize: 0` — es gibt in dem Moment
|
||||
// noch keinen Strom, und jede Frage danach musste scheitern. Ein
|
||||
|
||||
Reference in New Issue
Block a user