SRF Video-Streams im m3u8-Format lokal abspeichern

Auf meinem Synology NAS lagern hunderte Video-Clips und Sendungen, welche ich mir bei Gelegenheit mit AirVideo (iOS-Client mit OS X-Server) über meinen Mac mini über unseren Apple TV auf dem Panasonic-Plasma anschaue.

Die lokale Sicherung von Video-Clips klappt für YouTube und Vimeo vorzüglich (youtube-dl, welches ich im Zusammenspiel mit Remember the Milk kürzlich mit einem bash-Script automatisiert habe, welches den RSS-Feed der To Do-Liste nach YouTube- und Vimeo-URLs absucht und diese in einen _TOWATCH-Ordner auf dem NAS abspeichert), doch bei Streams von Fernsehsendern hat man seine liebe Mühe – manchmal nützen nicht einmal Jaksta, um den Stream über das Mitlesen des TCP/IP-Verkehrs mitzuschreiben, oder spezifisch für einen Sender geschriebene Tools wie Arte+7 videos are one click away ….

Das Schweizer Fernsehen ist so ein Sonderfall: Wenn ich es richtig verstehe, setzt der Sender eine Adobe-Lösung ein, um Streams entweder über einen Flash-Player an Mac- oder Windows-Clients oder als m3u8-Stream an Smartphones und Tablets auszuliefern.

Damit man an die URL für den m3u8-Stream kommt, muss man unter Mac OS X unter Firefox den User Agent temporär so anpassen, dass dem SRF-Server ein iPad vorgegaukelt wird. Ich verwende dazu die Extension User Agent Switcher 0.7.3, wobei ich anmerken muss, dass ich einfach die nächstbeste Erweiterung installiert habe, die mir vor die Flinte kam.

Ein möglicher User Agent, um ein iPad vorzutäuschen, lautet beispielsweise:

Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53

Quelle: User Agent Strings of iOS – Webapps Online

Hat man die URL zum m3u8-Stream im HTML-Quellcode ausfindig gemacht, lädt man die m3u8-Datei herunter und zeigt anschliessend ffmpeg (bei mir über MacPorts installiert) auf die Datei, um den Stream abzugreifen:

$ wget -O master.m3u8 "http://srfvodhd-vh.akamaihd.net/i/vod/dok/2014/01/dok_20140122_225809_v_webcast_h264_,q10,q20,q30,q40,.mp4.csmil/master.m3u8"
$ ffmpeg -i master.m3u8 -strict -2 video.mp4

Je nach Downloadgeschwindigkeit sollte man nach einigen Minuten eine MP4-Datei im aktuellen Verzeichnis liegen haben, welche sich dann problemlos auf den Apple TV streamen lässt.