Add unattended recorder that finds the live stream itself
record_live.py runs the whole chain alone: headless browser only to learn the entry id (it appears at runtime; static HTML has none when nothing is live), then plain Python mints a fresh master playlist, then ffmpeg records. No password needed. Firefox session cookies run to late November, well past any kickoff, so the job authenticates from the stored session. Three failures found by testing against a live feed rather than at kickoff: - yt-dlp's native HLS downloader fetches variant playlists with Python and gets 403/404 on path-token URLs. Forced --downloader ffmpeg; this is required, not a preference. - ffmpeg 4.3.1 has no -reconnect_on_network_error. Removed here and in catcher.py, which had the same unsupported flag. - A master playlist outlives its stream: after a match ends the master is still served while its variants 404. So a found master does not mean a live stream, and a downloader that dies immediately means "not up yet" rather than "failed". It now retries until the wait window expires. Untested: the actual segment download for an audio-only stream, because nothing is live right now. Video was verified working on 29 Aug. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kyt7QHQvLJtQRuiY4wAqKB
This commit is contained in:
+2
-1
@@ -68,8 +68,9 @@ def start_recording(key, url, user_agent, page):
|
||||
# yt-dlp's own retry flags do NOT reach the ffmpeg downloader, which is
|
||||
# what actually pulls live HLS. These are ffmpeg's own reconnect knobs.
|
||||
"--downloader-args",
|
||||
# ffmpeg 4.3.1 has no -reconnect_on_network_error.
|
||||
"ffmpeg_i:-reconnect 1 -reconnect_streamed 1 "
|
||||
"-reconnect_on_network_error 1 -reconnect_delay_max 30",
|
||||
"-reconnect_delay_max 30",
|
||||
"--downloader-args", f"ffmpeg_o:-t {DURATION_MIN * 60}",
|
||||
"-o", out,
|
||||
url,
|
||||
|
||||
Reference in New Issue
Block a user