Mediathek Download
26
April
Ich persönlich finde Angebote wie die Mediathek des ZDF sehr interessant. Es gibt dort viele interessante Beiträge die man sich ansehen kann, wenn man Zeit dazu hat. Nun ist es einerseits so, dass die Beiträge teilweise nur 7 Tage zur Verfügung stehen und man andererseits die Beiträge vielleicht auch auf dem Fernseher / Ipod o.ä. sehen möchte. Dazu muss man das Material zuerst einmal herunterladen. Dazu habe ich mir ein Script geschrieben, welches das recht komfortabel macht.
Prerequisites für das Script:
- mencoder
- curl
- zenity
Wie ? (am Beispiel der ZDF Mediathek)
- HTML Version der Mediathek aufrufen (http://www.zdf.de/ZDFmediathek/hauptnavigation/startseite?flash=off)
- Beitrag auswählen
- (leider) den “Windows Media Player” Link in der gewünschten Bandbreite kopieren (rechte Maustaste)
- das Script aufrufen und den Link einfügen
- warten bis der Download beendet ist
Der Download liegt dann im .mpg (mpeg2video) Format vor und kann auf diversen DVD-Playern wiedergegeben werden oder in Itunes Importiert, und für Ipod/Iphone konvertiert werden.
#!/bin/bash
#
# Download Script fuer .asx URLs (embedded .wmv)
#
# Download aus aus der ZDF Mediathek:
# - HTML Version der Mediathek aufrufen
# - Beitrag auswaehlen
# - Windows Media Player Link (DSL 1000 / DSL 2000) kopieren
# - Script aufrufen und den Link einfügen
# - download starten ....
#
# Prerequisites:
# - mencoder
# - curl
# - zenitiy
# - .asx URL (linked to a .wmv Stream)
#
# Ronny Becker, 01.2010
#
# grab URL
if [ ! $1 ]; then
URL=`zenity --entry --text "Bitte die URL (.asx) eingeben:" --title "Mediathek Downloader" --width=400`
else
URL=$1
fi
# check if a URL was entered
if [ ${#URL} -eq 0 ]; then
zenity --error --title "Mediathek Downloader" --text="Keine gueltige URL ($URL)"
exit
fi
# get mms:... out of .asx
URL=`curl -s ${URL} | grep -o "mms:.*\.wmv"`
# get filename from the origin; without .wmv
OUTFILE=`basename $URL | sed 's/\.wmv//'`
# download and save; show progressbar
# if you need debugging, please comment out the progressbar function
# beginning at "| awk ..."; then you get all to console output
if [ $1 ]; then
mencoder -ofps 25 -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf harddup\
-srate 48000 -af lavcresample=48000,volnorm=1\
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=15360:vbitrate=15360:keyint=15:acodec=ac3:abitrate=192\
-o "${OUTFILE}.mpg"\
$URL
else
mencoder -ofps 25 -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf harddup\
-srate 48000 -af lavcresample=48000,volnorm=1\
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=15360:vbitrate=15360:keyint=15:acodec=ac3:abitrate=192\
-o "${OUTFILE}.mpg"\
$URL 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/," ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position
\t"$1"\\nFrame
\t"$2"\\nPercentage
\t"$3"%\\nFrame Rate
\t"$4"\\nTime Remaining
\t"$6; fflush();}' | zenity --progress --auto-kill --auto-close
fi

Durch hinzufügen der folgenden Zeilen, kann man auch komfortabel die ORF Mediathek nützen:
#if ORF Mediathek link => generate asx url
if [[ $URL == *tvthek.orf.at* ]] && ! [[ $URL == *.asx* ]] ; then
URL=$(curl -s “$URL” | grep -o “/programs.*\.download\.asx” )
URL=”http://tvthek.orf.at$URL”
#echo “$URL”
fi
Hierbei wird die .asx Adresse aus der “normalen” URL (für den Browser) extrahiert. Die paar Zeilen müssen vor dem Auslesen der mms Adresse eingefügt werden.
lg
Wieder ein Stück im Puzzle um den Wechsel von Mac OS X auf Ubuntu ergänzt, danke!
(Screenshots des OS X-Äquivalents “Mediathek”: http://www.aptgetupdate.de/2010/04/01/mediathek-ard-zdf-arte-wdr-videos-speichern-und-abspielen)
Das Script läuft bei mir nicht unter Lucid. Gibt es dazu eine Lösung?
Gibt das Script auf der Kommandozeile Hinweise?
Es läuft doch unter Lucid. Man muss nur die Option wählen: “Im Terminal ausführen”
Wer regelmäßig ganz bestimmte Sendungen runterlädt, dem ist sicher mit Miro geholfen. Damit lassen sich sehr schön Videopodcasts abonnieren!
Leider stehen nur die wenigsten Beiträge der Mediathek als Podcasts zur Verfügung.
Habe gerade die neue Version ausprobiert, und es läuft! Danke!
Danke für das script. Man könnte statt mencoder auch msdl, http://msdl.sourceforge.net verwenden?
Ok, geht auch so schlecht wie die kurze mplayer Version,
ist übrigens diese:
curl $1 | grep mms: | cut -d \” -f 2 | xargs -n1 mplayer -dumpstream -dumpfile $2
$1 ist URL, $2 Output
Deine Methode meldet bei mir meist:
Too many video packets in the buffer: (4096 in 28395233 bytes).
Maybe you are playing a non-interleaved stream/file or the codec failed?
For AVI files, try to force non-interleaved mode with the -ni option.
Die ni Option ist für AVI, ASF und MPEG streams, was aber eigentlich stimmt. Bei Verwendung dieser lehnt mencoder ab.
Ich kenne mich mit der Materie sehr schlecht aus, hoffe du nicht auch
ZFmediathk macht desöfteren Probleme bei mir, die Filme werden nicht ganz heruntergeladen. Ein anderes Problem ist, dass die Filme nur aus den RSS Feeds gefecht werden, aber zumindest hat mein einige Links.
Bisher hatte ich einen “etwas” kürzeren Einzeiler mit curl und mplayer verwendet, allerdings kommt der nun nicht mehr mit der ZDF mediathek zurecht. Da kommt mir das gerade recht, noch dazu weil die deutschen öffentlich Rechtlichen nun sehr ihre Webservices kürzen kürzen müssen.
Sehr gutes Script. Finde persönlich http://zdfmediathk.sourceforge.net/ viel zu unübersichtlich.
Danke für sharing!
Noch ein Tipp: Will man das Video am Ende des Downloads zb nach /home/”Benutzername”/Videos verschieben einfach am Ende der Datei:
mv ${OUTFILE}.mpg /home/”Benutzername”/Videos
einfügen.
Wenn ein benötigtes Paket nicht installiert ist wäre es praktisch, wenn das Skript dies anzeigen würde (auch wenn das natürlich nur eine Komfortfunktion ist).
Es gibt immer noch folgenden Fehler (hat der was mit deinem Skript zu tun?):
~/.gtkrc-2.0:3: error: unexpected character `:', expected character `='Der Fehler sieht nach einem Problem in der .gtkrc aus – Syntaxfehler. Ich würde die Datei einfach mal umbenennen – dann wird das laufen.
Moin!
Tolle Sache! Hatte am Wochenende auch schon mit Dumps aus der Mediathek rumgespielt und mich über dieses dämliche WMV-Format geärgert!
Als ich eben dein Script ausprobieren wollte streikte das aber:
Bekam folgende Fehlermeldung:
\t”$1″\\nFrame
\t”$2″\\nPercentage
\t”$3″%\\nFrame Rate
\t”$4″\\nTime Remaining
\t”$6; fflush();}’ | zenity –progress –auto-kill –auto-close’
/home/arnohr/bin/mediathek: Zeile 42: Syntaxfehler beim unerwarteten Wort `;&’
/home/arnohr/bin/mediathek: Zeile 42: ` $URL 2>&1 | awk -vRS=”\r” ‘$1 ~ /Pos/ {gsub(/Pos:/,” “);gsub(/%\)/,” “);gsub(/ \(/,” “);print $3″\n#Position
Bevor ich jetzt das Basteln anfange, wäre es möglich auch direkt MKVs mit x264 und AAC zu erhalten?
Hallo,
der Fehler ist korrigiert – Du kannst das nochmal neu kopieren.
Prinzipiell ist jedes Format möglich, welches von mencoder zur Verfügung gestellt wird. Mit anderen Formaten hab ich mich bisher jedoch nicht beschäftigt.
Gruß
Ronny
die Mühe kann man sich in Zukunft sparen, es dafür ein sehr komfortables java Programm http://zdfmediathk.sourceforge.net/
Damit kann man die Mediatheken der öffentlichen rechtlichen abspielen und aufnehmen
vlt etwas einfacher: http://sourceforge.net/projects/zdfmediathk/
Ich habe mich in letzter Zeit auch mit der Thematik beschäftigt und bin dabei über ein sehr nützliches Tool gestolpert: http://zdfmediathk.sourceforge.net/
Es fragt die kompletten Archive der Mediatheken ab und kategorisiert die Medien.
Leider funktionierte der Download bei mir nur in der Kommandozeile mit flvstreamer. Man kommt aber mit Hilfe des Programms zumindest an die Links zu den HD-Videos.
Ich werde es jedenfalls weiterhin beobachten.
Aber auch deine Lösung werde ich bei Gelegenheit mal ausprobieren.
Guten Tag zusammen,
Danke für die Mühe! Sehr sinnvolles Script für mich, muß immer noch keinen HD-Recorder kaufen
Zwei kleine Korrekturen (erbeten):
1. Versuch – Download legt eine Null-byte-Datei ab.
2. Versuch – dann eben mit copy and paste eine neue Datei gefüllt. Ausführung in der Shell: Fehler in Zeile 42… Die mpg wird trotzdem erstellt, nur ohne hübsches Fortschrittsfenster.
Die Website verwurstet sowohl auf planet.ubuntuusers.de/ als auch auf
linux-aha.de/wordpress/?p=321 den Anfang der Zeile 42, richtig muß es heißen:
$URL 2>&1 | …
Übrigens, weiß jemand, wie ich Bild und Ton synchron bekomme? Der Ton hinkt 0,3 bis 0,5 sec hinterher…
Grüße, randolph
In Zeile 42 ist 2>&1 zuviel, das gehört da glaube ich nicht hin. Sieht aus wie von der HTML Formatierung.
schon korrigiert – Danke.
Der Download-Link läuft nicht. Wenn ich das Script selbst über Copy + Paste in gedit erstelle, läuft es zuerst wie erwartet, läd dann aber nichts herunter. Alle geannten Pakete sind installiert. Woran kann’s liegen?
Bitte die aktuelle Version kopieren und den Link als Parameter mitgeben – dann hagelt es den Output von mencoder. Das könnte bei der Suche helfen.
Wie sieht es hier mit der rechtlichen Seite aus? In den FAQ steht:
Streaming & Download
Die Videos der ZDFmediathek stehen als Stream zur Verfügung, das heißt, sie werden von den Servern des ZDF abgerufen. Ein Download – also eine Kopie auf die eigene Festplatte – ist aus rechtlichen Gründen für die meisten Beiträge nicht möglich. Künftig sollen jedoch einige Sendungen für den Download zur Verfügung gestellt werden. Wer jetzt die Privatkopie einer Sendung beziehen möchte, kann einen kostenpflichtigen Sendungsmitschnitt unter folgender Email-Adresse bestellen: programmservice@zdf.de
Hallo,
ehrlich gesagt habe ich mich darum nicht wirklich gekümmert. Ich mach die lokale Kopie nur für das ganze auf meinem Fernseher zu schauen und überschreibe die CD-RW dann wieder. Manchmal landet eine Aufnahme auch auf dem iPod aber das wars. Ich nutze das nur, um die Inhalte dann zu schauen wann ich will und eben auch wo ich will.
Sollte jemand das ganze “kommerziell” einsetzen wollen wäre ich da allerdings vorsichtig.
Hi!
Sehr interessantes Skript… wie ist es denn mit der ARD Mediathek? Die funktioniert auch ähnlich… hast du damit schon Erfahrungen sammeln können?
Gruß, fr3sh
Hallo,
prinzipiell funktioniert das Script mit jedem Link der als .asx angeboten wird. Wenn die ARD das auch so macht sollte es keine Probleme geben.
Gruß
Ronny
Hallo,
der Downloadlink funktioniert nicht mehr!? Und wenn ich den Text kopiere und als Script speichere, dann gibt es folgende Fehlermeldung:
Zeile 42: Syntaxfehler beim unerwarteten Wort `;&’
Gruß
Arthur
Der Fehler ist korrigiert – bitte nochmal das Script kopieren.
Hallo
Ich habe schon lange so was gesucht! Leider passiert bei mir nichts nachdem ich die Adresse eingefügt habe.
Wo könnte das problem liegen?
MfG
Billy
Hallo,
Du könntest die neuere Version des Scriptes ausprobieren und den Link zur Mediendatei einfach als Parameter in der Konsole eingeben. Dadurch siehst Du was mencoder macht und kannst vielleicht den Fehler finden.
Gruß
Ronny
Das Java-Programm Mediathek beherrscht ebenfalls das rippen und speichern des Mediathekstreams der Ersten, Zweiten und Dritten Programme.
http://trompetenkaefer.wordpress.com/2009/10/18/zdfmediathek-einrichten/
Tja, Mist. Natürlich auch auf die HTML Entities reingefallen, weil die natürlich sofort interpretiert werden.
Korrektur zum “ps:”
“& g t ;” in “>” und
“& a m p ;” in “&” umwandeln
Hallo,
das Script ist eine tolle Idee! Habe schon öfter daran gedacht, ob/wie man die Streams abspeichern könnte.
Dein Script habe ich sofort abgespeichert, aber leider funktioniert es nicht problemlos:
Der Download einer etwas längeren Sendung ist nach 23 Minuten Laufzeit abgebrochen und da es keine Fehlermeldung gibt, kann ich nicht sagen, woran es lag. Die Internetverbindung war zu der Zeit jedenfalls nicht unterbrochen und auch auf der HDD ist genügend Speicherplatz.
Weder die unvollständige Datei, noch eine weitere (komplette) Datei hat Sound, was ich mir nicht so ganz erklären kann.
Trotz der paar Problemchen, die bestimmt noch behoben werden können, möchte ich mich für das tolle Script bedanken!
Grüße
Julian
ps: Der Downloadlink für das Script funktioniert nicht, erstellt man aus dem o.g. Code das Script manuell muss man > in > und & in & umwandeln. Ich denke mal, dass deine Blogsoftware die Zeichen automatisch umgewandelt hat?!
Das war ein Problem mit WordPress. Hab den Fehler korrigiert.
Hallo!
Kleine Frage: Was ist der Vorteil gegenüber der Nutzung von vlc? Dort kann ich doch auch Netzwerkstreams öffnen und aufzeichnen/konvertieren. Oder ist die Nutzung der Kommandozeile komfortabler?
Andreas
Hallo,
wenn man sich das Script beispielsweise ins Menü legt, hat das eigentlich nicht viel mit Kommandozeile zu tun. Das Speichern per VLC finde ich für recht “unkomfortabel” – ist aber wie so oft Geschmackssache.
Ronny
Vor kurzem hat mich jemand auf ein Programm hingewiesen das relativ komfortabel ist um Inhalte der Mediatheken herunterzuladen.
http://zdfmediathk.sourceforge.net/index.html
Also irgendwie kriege ich es nicht bis zum Download, obwohl ich alle prerequisites erfülle. Nach Eingabe der .asx bekomme ich folgende Fehlermeldung:
\t”$1″\\nFrame
\t”$2″\\nPercentage
\t”$3″%\\nFrame Rate
\t”$4″\\nTime Remaining
\t”$6; fflush();}’ | zenity –progress –auto-kill –auto-close’
./mediathek_downloader.sh: line 42: syntax error near unexpected token `&’
./mediathek_downloader.sh: line 42: ` $URL 2>&1 | awk -vRS=”\r” ‘$1 ~ /Pos/ {gsub(/Pos:/,” “);gsub(/%\)/,” “);gsub(/ \(/,” “);print $3″\n#Position
Übrigens habe ich das Skript mit “copy und paste” übernommen, da der Link zum gezippten File nicht zu funktionieren scheint. Sind dies evtl. 2 verschiedene Versionen?
Gruß, linuxnetzer
Das war ein Problem mit WordPress. Hab den Fehler korrigiert.
Des Weiteren habe ich das Script erweitert: Man kann nun auch den Link als Parameter in der Konsole mitgeben – dadurch sieht man den Output von mencoder und kann dadurch mögliche Fehler besser finden.
Gruß
Ronny
Dafür gibt es ein Programm. Das kann nicht nur die Filme vom ZDF runterladen
http://zdfmediathk.sourceforge.net/
Danke für den Hinweis – sieht auch gut aus !