Das ist nicht so ganz einfach.
Die URL für den ZDF-Livestream lautet http://zdf-hls-15.akamaized.net/hls/live/2016498/de/high/master.m3u8 . Diese muss herunter geladen werden, beispielsweise mit wget.
In dieser Datei suchst Du oben die Zeile mit dem passenden Ton und unten die passende Videoauflösung:
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="A1.1+A2.1+A3.1-2011680127",NAME="TV Ton",LANGUAGE="deu",DEFAULT=YES,URI="/hls/live/2016498/de/46737977cd995332e70936236b8a9bd8/4/4.m3u8"
#EXT-X-STREAM-INF:CODECS="avc1.640028,mp4a.40.2",BANDWIDTH=4504154,AVERAGE-BANDWIDTH=3544154,AUDIO="A1.1+A2.1+A3.1-2011680127",SUBTITLES="T1-2011680127",FRAME-RATE=50.000,RESOLUTION=1280x720
/hls/live/2016498/de/46737977cd995332e70936236b8a9bd8/3/3.m3u8
Die beiden URLs werden dann mit der Basisadresse http://zdf-hls-15.akamaized.net erweitert und Du bekommst dann beispielsweise
http://zdf-hls-15.akamaized.net/hls/live/2016498/de/46737977cd995332e70936236b8a9bd8/4/4.m3u8 # Ton
http://zdf-hls-15.akamaized.net/hls/live/2016498/de/46737977cd995332e70936236b8a9bd8/3/3.m3u8 # 1280x720
Diese beiden Dateien werden nun herunter geladen.
Nun suchst Du Dir jeweils einen Block mit identischer Sequenz bzw. Zeit:
#EXT-X-PROGRAM-DATE-TIME:2026-06-28T12:27:30Z
#EXTINF:2.005,
1180900.aac
#EXT-X-PROGRAM-DATE-TIME:2026-06-28T12:27:30Z
#EXTINF:2.000,
1180900.ts
Im nächsten Schritt werden die URLs von vorhin um die letzten Zeichen gekürzt und der Segmentname angehängt:
http://zdf-hls-15.akamaized.net/hls/live/2016498/de/46737977cd995332e70936236b8a9bd8/4/1180900.aac # Ton
http://zdf-hls-15.akamaized.net/hls/live/2016498/de/46737977cd995332e70936236b8a9bd8/3/1180900.ts # Video
Diese Daten werden nun herunter geladen.
Video und Audio müssen noch kombiniert werden. Mit dem Befehl
ffmpeg -i 1180900.ts -i 1180900.aac -map 0:v:0 -map 1:a:0 1180900.mp4
klappt das zwar, es wird aber neu kodiert und außerdem ist das Ergebnis nur 2 Sekunden lang.
Aber für den Einstieg sollte das reichen.