Streams aus den ZDF, ARD und Arte Mediatheken speichern

Ich bin ja ein ausgesprochen großer Fan der Mediatheken der öffentlich Rechtlichen – nur leider haben die das blöde Problem, dass der Content nur für begrenzte Zeit verfügbar ist und danach auf Ewigkeiten verschwindet. Das ist besonders traurig, da wir Bürger diesen Content finanziert haben.

Hinzu kommt, dass die Inhalte relativ gut gegen Downloads geschützt sind und es somit nicht ausreicht, den Link zur flv- oder mp4 Datei im Quelltext der Seite zu suchen. Abhilfe schafft das Tool MediathekView. Es scannt die Inhalte der Mediatheken von ARD, ZDF, Arte, 3Sat usw. und listet diese auf. Der Clou ist nun, dass gleich die entsprechenden URLs herausgesucht werden und der Stream mittels VLC Player angesehen werden kann. Alternativ kann man mittels flvStreamer die Flash-Streams von z.B. Arte speichern (RTMP).

Bisher habe ich beide Systeme nur unter Mac getestet, es sollte aber so auch unter Windows und Linux laufen.

Wenn man MediathekView startet und den Button “alle Filme neu laden” betätigt, dann wird die Datenbank der verfügbaren Streams geupdated. Anschließend kann man sich die gewünschten Streams heraussuchen.

Arte z.B. verwendet Flash-Streams, die so nicht direkt mit einem Videoplayer angesehen werden können. Leider hat MediathekView bei mir den VLC Player und flvstream nicht erkannt, also musste ich mir manuell weiterhelfen. Klickt man in Mediathekview mittels Rechtsklick auf einen Film und dann auf “URL kopieren”, dann kann man mittels

flvstreamer [kopierte url] -o zieldatei.flv

den Stream sichern. Leider kam bei mir das Problem auf, dass nach immer ca. 3% der Download abbrach. Man kann dann zwar den Ladevorgang mittels

flvstreamer [kopierte url] -o zieldatei.flv --resume

fortsetzen – aber beim nächsten Fehler bricht der Download wieder ab.

Um das Problem zu umgehen, habe ich ein Script bei forum.ubuntuusers.de gefunden. Ich habe es so modifiziert, damit es Parameter übernimmt und somit universell einsetzbar ist:

getflv.sh
#!/bin/sh
flvstreamer -r $1 -o $2 --resume
Checksum1="$(ls -s $2)"
flvstreamer -r $1 -o $2 --resume
Checksum2="$(ls -s $2)"
echo "$Checksum1"
echo "$Checksum2"
while [ "$Checksum1" != "$Checksum2" ]
do
flvstreamer -r $1 -o $2 --resume
Checksum1="$(ls -s $2)"
flvstreamer -r $1 -o $2 --resume
Checksum2="$(ls -s $2)"
echo "$Checksum1"
echo "$Checksum2"
done

Will man einen Stream laden, dann ruft man

getflv.sh [url (ohne -r)] zieldatei.flv

auf. Das Script startet den Download im Falle eines Abbruchs so lange neu, bis die Datei komplett geladen wurde. Das funktionierte bei mir bisher wunderbar – natürlich nur für Arte Streams.