From 458396c2b7b3c3be6f47a2050242d4a063a91ac8 Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Sat, 12 Sep 2026 15:53:54 +0200 Subject: [PATCH] =?UTF-8?q?Probe:=20pr=C3=BCfen,=20ob=20der=20Transcoder?= =?UTF-8?q?=20=C3=BCberhaupt=20etwas=20tut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Das Abwarten brachte nichts: der Vorgang meldet auch nach zwölf Sekunden keine Daten. Und jede Anfrage an den Transcoder endet mit einer nackten 400 — auch die an den Entscheider, der sich sonst erklärt. Das ist ein Muster, das nicht nach Live-TV aussieht, sondern nach dem Transcoder selbst. Dass er funktioniert, habe ich die ganze Zeit vorausgesetzt und nie geprüft: Filme laufen über DirectPlay, da wird er gar nicht gefragt. Live-TV ist das Erste, was ihn zwingend braucht. Also die Gegenprobe, vor allem weiteren Suchen: eine gewöhnliche Datei aus der Mediathek durch den Transcoder. Läuft sie durch, liegt es an Live-TV. Läuft sie nicht durch, habe ich tagelang am falschen Ende gesucht. Co-Authored-By: Claude Opus 5 --- .../FlixyKit/Sources/FlixyProbe/main.swift | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Packages/FlixyKit/Sources/FlixyProbe/main.swift b/Packages/FlixyKit/Sources/FlixyProbe/main.swift index b3c5384..f10285c 100644 --- a/Packages/FlixyKit/Sources/FlixyProbe/main.swift +++ b/Packages/FlixyKit/Sources/FlixyProbe/main.swift @@ -76,6 +76,30 @@ if !requested.isEmpty { exit(0) } +// MARK: - Gegenprobe + +// Bevor weiter an Live-TV gesucht wird: tut der Transcoder überhaupt etwas? +// Jede Anfrage an ihn endet mit einer nackten 400 — auch die an den +// Entscheider. Das ist eine Annahme, die ich die ganze Zeit ungeprüft +// mitgeschleppt habe, und sie gehört als Erstes geprüft: läuft eine +// gewöhnliche Datei durch, liegt es an Live-TV. Läuft sie nicht durch, habe +// ich tagelang am falschen Ende gesucht. +if let hubs = try? await server.homeHubs(), + let movie = hubs.flatMap(\.items).first(where: { $0.kind == .movie }) { + let request = TranscodeRequest( + ratingKey: movie.ratingKey, + maximumBitrate: 4_000, + isLocal: connection.local + ) + if let url = server.transcodeURL(for: request) { + print("Gegenprobe — Transcoder mit: \(movie.title)") + print(" → \(await server.probeStream(url: url))") + print() + } +} else { + print("Gegenprobe: keine Datei zum Prüfen gefunden.\n") +} + // MARK: - Live-TV let availability = await server.liveTVAvailability()