Videos aus ARD Mediathek herunterladen
Friday, January 8. 2010, 22:39
Ich stand heute vor dem Problem, ein Video aus der ARD-Mediathek herunterladen zu wollen. Die gibt es meistens nur noch als Flash und ohne Download-Link.
Die Videos werden über RTMP übertragen, was ein Flash-eigenes Videostreaming-Protokoll ist. Im gulli-Forum fand ich eine Anleitung. Ich habe darauf basierend ein kleines Skript ardget geschrieben, mit dem man das bequem erledigen kann. Aufzurufen einfach über
ardget "[URL der Mediathek]"
Die Anführungszeichen sind notwendig, weil die URLs &-Zeichen enthalten, die sonst von der Shell fehlinterpretiert werden. Da die Videos teilweise mit Javascript-URLs verlinkt sind, filtere ich das auch entsprechend, man kann also den kompletten javascript: beginnenden Link übergeben. Benötigt wird entweder flvstreamer oder rtmpdump, sollte ansonsten in jeder gängigen Unix-Shell funktionieren.
Die Videos werden über RTMP übertragen, was ein Flash-eigenes Videostreaming-Protokoll ist. Im gulli-Forum fand ich eine Anleitung. Ich habe darauf basierend ein kleines Skript ardget geschrieben, mit dem man das bequem erledigen kann. Aufzurufen einfach über
ardget "[URL der Mediathek]"
Die Anführungszeichen sind notwendig, weil die URLs &-Zeichen enthalten, die sonst von der Shell fehlinterpretiert werden. Da die Videos teilweise mit Javascript-URLs verlinkt sind, filtere ich das auch entsprechend, man kann also den kompletten javascript: beginnenden Link übergeben. Benötigt wird entweder flvstreamer oder rtmpdump, sollte ansonsten in jeder gängigen Unix-Shell funktionieren.
Trackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
Ich habe leider ein Problem mit dem Skript (Ubuntu 9.04):
Das flvstreamer-Binary habe ich hier gefunden und in den Pfad kopiert:
http://linuxcentre.net/getiplayer/download
henze@quad:~/xy$ ./ardget 'http://www.ardmediathek.de/ard/servlet/content/3613660'
Using flvstreamer
HTTP URL is http://www.ardmediathek.de/ard/servlet/content/3613660
RTMP URL is
Host is , app is , playpath is
Saving as ARD_Mediathek_Bericht_aus_Berlin_Bericht_aus_Berlin_Sonntag_10.01.2010_Das_Erste.flv
FLVStreamer v2.1a
(c) 2008-2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
ERROR: Problem accessing the DNS. (addr: -a)
henze@quad:~/xy$
Woran könnte das liegen?
Danke im voraus
Rudolf
Das flvstreamer-Binary habe ich hier gefunden und in den Pfad kopiert:
http://linuxcentre.net/getiplayer/download
henze@quad:~/xy$ ./ardget 'http://www.ardmediathek.de/ard/servlet/content/3613660'
Using flvstreamer
HTTP URL is http://www.ardmediathek.de/ard/servlet/content/3613660
RTMP URL is
Host is , app is , playpath is
Saving as ARD_Mediathek_Bericht_aus_Berlin_Bericht_aus_Berlin_Sonntag_10.01.2010_Das_Erste.flv
FLVStreamer v2.1a
(c) 2008-2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
ERROR: Problem accessing the DNS. (addr: -a)
henze@quad:~/xy$
Woran könnte das liegen?
Danke im voraus
Rudolf
Das angegebene Video verwendet wohl kein RTMP. Allerdings bietet dieses Video einen direkten Download an (das Symbol mit dem Pfeil nach unten), insofern benötigt man überhaupt kein Tool für den Download.
Vielen Dank!
jetzt klappt es, zumindestens teilweise. Es funktioniert mit
Mythos Ruhr: Wo das Beständige der Wandel ist
unter http://www.ardmediathek.de/ard/servlet/content/3616338
Allerdings klappt der "Kulturpass für Arme in Frankfurt" unter
http://mediathek.ard.de/ard/servlet/content/3618490
nicht. Offenbar gibt es also auch nicht-RTMP Inhalte, die sich dennoch nicht speichern lassen.
Gruß
Rudolf
jetzt klappt es, zumindestens teilweise. Es funktioniert mit
Mythos Ruhr: Wo das Beständige der Wandel ist
unter http://www.ardmediathek.de/ard/servlet/content/3616338
Allerdings klappt der "Kulturpass für Arme in Frankfurt" unter
http://mediathek.ard.de/ard/servlet/content/3618490
nicht. Offenbar gibt es also auch nicht-RTMP Inhalte, die sich dennoch nicht speichern lassen.
Gruß
Rudolf
Auf der Seite zum Kulturpass findet sich im Seitenquelltext folgende URL:
http://www.hr.gl-systemhaus.de/flash/fs/hessenschau/20100111_1930_kulturpassd.flv
Ich könnte das evtl. einbauen, aber das kann man auch relativ einfach manuell runterladen.
http://www.hr.gl-systemhaus.de/flash/fs/hessenschau/20100111_1930_kulturpassd.flv
Ich könnte das evtl. einbauen, aber das kann man auch relativ einfach manuell runterladen.
Achso, der Direktlink zur FLV-Datei ist direkt im Quelltext enthalten! Sehr praktisch!
Das Einbauen in das Skript ist aus meiner Sicht nicht notwendig.
Gruß
Rudolf
Das Einbauen in das Skript ist aus meiner Sicht nicht notwendig.
Gruß
Rudolf
Auf eine Sache möchte ich noch hinweisen. Es gibt ein prima Python-Skript zum Herunterladen (oder Live ansehen) der ZDF-Mediathek:
http://sixserv.org/2009/12/21/mtgetzdf-mediathek-downloadstream/
http://sixserv.org/2009/12/21/mtgetzdf-mediathek-downloadstream/
Das Format der Mediathek-Seite hat sich geaendert.
ARDGET funktioniert nun wieder nachdem ich die folgenden zwei Zeilen hinzugefuegt habe (direkt nachdem die variable rtmpurl berechnet wurde):
mp4url=`echo $webpage | grep -o 'mp4[:/\.=_a-zA-Z0-9]*' | tail -n 1 | cut -d: -f2`
rtmpurl2=${rtmpurl}${mp4url}
Die Zeile zum flvstreamer musste ich dann wie folgt aendern:
flvstreamer -r $rtmpurl2 -o $filename
ARDGET funktioniert nun wieder nachdem ich die folgenden zwei Zeilen hinzugefuegt habe (direkt nachdem die variable rtmpurl berechnet wurde):
mp4url=`echo $webpage | grep -o 'mp4[:/\.=_a-zA-Z0-9]*' | tail -n 1 | cut -d: -f2`
rtmpurl2=${rtmpurl}${mp4url}
Die Zeile zum flvstreamer musste ich dann wie folgt aendern:
flvstreamer -r $rtmpurl2 -o $filename
Nettes Script. Leider ist ein kleiner Bug drin. Es wird immer flvstreamer benutzt, da es in der letzten Zeile direkt aufgerufen wird. Stattdessen müsse $tool aufgerufen werden.
Die letzte Zeile müsste so lauten:
$tool -n $host -a $app -y $playpath -o $filename
$tool -n $host -a $app -y $playpath -o $filename
Add Comment


