Download Flash Streams unter Ubuntu

Das Problem

Schnell mal ein Flash Video downloaden. Bisher hat mir das Firefox Plugin DownloadHelper ganz gute Dienste geleistet.

Doch das Plugin scheitert sobald die Videos, wie in verschiedenen Mediatheken, als Flash RTMP Stream angeboten werden.

Die Lösung

Die Lösung dafür heißt rtmpdump. Dabei handelt es sich um ein Tool für die Kommandozeile. Das Tool gibt es in Ubuntu 12.04 (Precise Pangolin) im Software Center als Download.

Ich bin ehrlich gesagt kein Freund der Kommandozeile, sondern habe lieber eine leicht zu bedienende GUI. Aber in diesem Fall ist der Workflow recht einfach.

Der Workflow

– Configure your firewall to redirect RTMP traffic through a local port: „sudo iptables -t nat -A OUTPUT -p tcp –dport 1935 -j REDIRECT“ – Then just start rtmpsrv in terminal : „rtmpsrv“

rtmpsrv will be analyzing data from your local port. It will output a rtmpdump command that can be used to watch live streams or to download videos. When you get the rtmpdump command, press CTRL+C to stop rtmpsrv.

– Delete the firewall redirect created above: „sudo iptables -t nat -D OUTPUT -p tcp –dport 1935 -j REDIRECT“

Example : rtmpdump -r „rtmp://61.194.12.178:1935/2e2cd“ -a „2e2cd“ -f „LNX 10,1,102,65“ -W „http://www3.nhk.or.jp/nhkworld/r/movr.0.3.6.2.swf“ -p „http://www3.nhk.or.jp/nhkworld/r/movie/index.html“ -y „nhkworldhd.sdp“ -o nhkworldhd.flv

Live stream command : rtmpdump -v -r „rtmp://61.194.12.178:1935/2e2cd/nhkworldhd.sdp“ -W „http://www3.nhk.or.jp/nhkworld/r/movr.0.3.6.2.swf“ | vlc –

http://www.stream-recorder.com/forum/use-rtmpdump-rtmpsrv-linux-t7661.html

  • Mit dem Kommando
    sudo iptables -t nat -A OUTPUT -p tcp --dport 1935 -j REDIRECT

    wird der Datenverkehr des rtmp Protokolls auf einen lokalen Port umgeleitet.

  • Dann wird mit
    rtmpsrv

    der Datenverkehr analysiert und ein brauchbarer Link ausgegeben. Dieser wird in die Zwischenablage kopiert.

  • Die Umleitung der Firewall wird wieder rückgängig gemacht
    sudo iptables -t nat -D OUTPUT -p tcp --dport 1935 -j REDIRECT
  • Der Link wird aus der Zwischenablage ins Terminal kopiert und ausgeführt und schon startet der Download.

Der Workflow etwas vereinfacht

in meiner ~/.bash.aliases habe ich folgende Zeilen eingefügt

alias vfon='sudo iptables -t nat -A OUTPUT -p tcp --dport 1935 -j REDIRECT'
alias vfoff='sudo iptables -t nat -D OUTPUT -p tcp --dport 1935 -j REDIRECT'
alias vc='rtmpsrv'

Mit dem Befehl „vfon“ (VideoFirewallOn) aktiviere ich die Portumleitung, mit vc (VideoCatch) starte ich den Server und erhalte ich den Link. vfoff (VideoFirewallOff) deaktiviert die Umleitung wieder. So muss ich mir die ganzen Befehle nicht merken, sondern nur noch die drei Aliase.

Anmerkungen

Die Qualität des dump schwankt bei mir. Häufig tauchen im gespeicherten Video Artefakte auf, die im Original nicht vorhanden sind. Auch dauert der dump unterschiedlich lange. Von ein paar Minuten bis hin zu ein paar Stunden für einen einstündigen Stream, obwohl der Server der gleiche ist. Auch habe ich das ein oder andere mal Abbrüche des Downloads gehabt. Totem Media Player und VLC Player können das Video zwar abspielen, ein Sprung zu einer Stelle innerhalb des Videos wird jedoch mit dem Absturz des Programms bestraft.  Auf meinem Handy schafft der MX Player das Springen zu einer Stelle aber ohne Probleme.

6 Gedanken zu „Download Flash Streams unter Ubuntu

  1. Hallo,

    bin auf Deinen praktischen Tipp eher zufällig gestossen und habe ihn sogleich ausprobiert.
    Allerdings erzeugt Dein Konstrukt eine Fehlermedlung auf diversen Videoportalen, die mit gekapselten swf Dateien usw. arbeiten.:

    „WARNING: HandShake: Type mismatch: client sent 6, server answered 8“

    Meine Vermutung ist, dass man bemerkt, dass in eine Richtung ein Umweg genommen wird. Daraufhin wird die Übertragung abgebrochen .

    Kannst Du Deinen Vorschlag dahingehend überarbeiten, dass in beide Richtungen der gleiche Umweg genommen wird?
    (Ich bin leider zu doof für sowas…)

    Gruß

    Windheavin

  2. Danke für den hilfreichen Kommentar.

    Mit der Überarbeitung bin ich im Moment auch etwas überfordert.

    Wenn du mir aber eine Beispiel Seite dafür nennst, kann ich es versuchen. Evtl geht es ja mit dem VLC Player. Mit dem habe ich zuverlässigere Ergebnisse erzielt.

  3. Hallo,

    meine Ausführungen beziehen sich auf das Musicvideostreaming eines int. Musicfernsehsenders. Es gibt auch noch eien nationalen Abkömmling, der verweist aber auf die gleichen Server. Weiters muß ich wohl nicht erklären.
    Bei Deiner Prozedur erhalte ich immer einen „Connection reset“. Aber die benötigten Daten bekomme ich angezeigt. Wenn ich dann die Umleitung abschalte und mit rtmpdump arbeite geht es dann doch (nicht vergessen: doppelte Anführungsstriche gegen einfache austauschen…)

    Wie sieht der Aufruf mit VLC aus?
    Ich habe damit versucht etwas zu erreichen, aber bisher leider erfolgos…

    Gruß

    Windheavin

    1. Für VLC brauchst du die URL des Musikvideos.
      Dann gehst du auf Medien > Konvertieren/Speichern > Netzwerk. Dort gibt du die URL ein.
      Dann unten rechts auf Konvertieren/Speichern klicken und jetzt „Raw-Input speichern“ klicken. Jetzt noch Namen der Zieldatei festlegen und dann „Start“ klicken.
      So sollte es funktionieren.

      Allerdings dürfte für dich das nicht komfortabler sein, da du manuell an die direkte Streaming URL heran musst.

  4. Hallo,
    ich daddel jetzt den ganzen schon rum und bekomm das nicht zum laufen. weder rtmpsrv noch rtmpsuck spucken infos zu dem stream aus. irgendwie glaube ich dass entweder das redirecten des streams nicht funktioniert. soweit ich das ganze verstanden habe, soll man nach dem redirecten den stream nicht mehr laden können (weil ja alles an dem rtmpsrv umgeleitet wird). Bei mir spielt der stream ber immer ganz normal ab. kann das sein, bzw kann man das irgendwie checken?
    ich versuche die ganze diesen stream zu laden:
    http://www.ardmediathek.de/wdr-fernsehen/dittsche/dittsche-das-wirklich-wahre-leben?documentId=20129534

    Bin für jeden Hinweis dankbar!

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s