Ergebnis 1 bis 8 von 8
  1. #1
    Mitglied
    Registriert seit
    Aug 2010
    Beiträge
    26

    Standard Tutorial: Downloaden mit rtmpsuck, rtmpsrv, ...

    Das Tutorial richtet sich in erster Linie an LinuxUser. Leider kann ich auf die speziellen Einegheiten der vorgestellten Programme unter Windows nicht eingehen, da mir hierzu schlichtweg das Wissen fehlt. Vielleicht findet sich ja jn. der ein paar Ergänzungen vornehmen möchte.

    rtmpsuck:
    Funktion:
    Zitat Zitat von README
    The rtmpsuck command has only one option: "-z" to turn on debug logging. It listens on port 1935 for RTMP sessions, but you can also redirect other ports to it as needed (read the iptables docs). It first performs an RTMP handshake with the client, then waits for the client to send a connect request. It parses and prints the connect parameters, then makes an outbound connection to the real RTMP server. It performs an RTMP andshake
    with that server, forwards the connect request, and from that point on it just relays packets back and forth between the two endpoints.
    Vorteile:
    Zeichnet alles auf. Auch wenn sog. secureTokens mehrfach verwendet werden.

    Nachteile:
    Liegen auf der Hand wenn man sich unten stehenden Aufwad anschaut

    Vorgehen:
    Richtet zunächst ein zweites Benutzerkonto ein (Name ist egal). Der neue Nutzer sollte unbedingt auch der Standardgruppe users zugeordnet werden (wegen der Schreibrechte).
    In unserem Fall nennen wir das neue Konto: gast

    Erstellt eine neue Firewallregel (als root)(alles in einer Zeile):
    Code:
    iptables -t nat -A OUTPUT -p tcp --dport 1935 -m owner ! --uid-owner gast  -j REDIRECT
    Wenn wir schonmal root sind, dann sollten wir dem Verzeichnis in dem rtmpdump liegt auch gleich noch die nötigen Schreibrechte für den User gast geben.
    Code:
    chmod 774 <Verzeichnis-in-dem-rtmpsuck-liegt>
    Loggt euch nun auf einer Kosole als der User gast ein.
    Code:
    su gast
    Jetzt startet ihr rtmpsuck.
    Code:
    ./rtmpsuck
    Öffnet mit eurem default Userkonto den alten Feuerfuchs und stellt den private Modus ein. Anschließend surft ihr auf eine Seite die den rtmp Stream bereithält (beispielsweise die Zdf_Mediathek oder die arte_Mediathek) und startet die Wiedergabe.

    Nun heißt es abwarten und Teetrinken. Ihr müsst den kompletten Stream bis zum Ende durchlaufen lassen. Wenn der Download vorbei ist, könnt ihr rtmpsuck mit Strg-C beenden.

    Nicht vergessen die Firewallregel zu entfernen (als root):
    Code:
    iptables -t nat -F ; iptables -t nat -X

    rtmpsrv:
    Den Orignalbeitrag findet ihr hier:
    http://board.gulli.com/thread/157865...r-flvs-dumpen/

    Funktion:
    Liefert alle für einen Download wichtigen Parameter. Die Ausgabe kann so wie sie in der Konsole steht gelich per copy & paste angewendet werden.

    Vorteile:
    Man erspart sich die lästige Sucherei nach den korrekten Parametern.

    Nachteile:
    Funktioniert nicht bei Seiten, die mit mehrfachen secureTokens arbeiten. Liefert mehr Parameter, als meistens benötigt. Für die ZDF_Mediathek reicht eigentlich
    Code:
    rtmpdump -r <Pfad zum Stream> -y <Playpath>
    Die Ausgabe von rtmpsrv ist jedoch ungleich länger.

    Vorgehen:
    Zitat Zitat von mightyEx Beitrag anzeigen
    Viele Content-Anbieter streamen ihre Flash-Video's über das RTMP-Protokoll. Dies bereitet z.T. noch etwas Kopfzerbrechen, wenn man das Video herunterladen möchte. Es gibt aber eine relativ einfache Möglichkeit via rtmpdump sämtliche Videos herunterzuladen. Hierzu benötigt rtmpdump bestimmte Parameter.
    Um an genau diese Parameter zu kommen, gaukelt man dem eingebetteten Web-Flash-Player einen RTMP-Server vor, zu dem der Web-Player seine Anfragen schickt. Der RTMP-Server seinerseits protokolliert die Anfragen des Web-Players. Somit werden sämtliche Parameter abgefangen, die rtmpdump zum Laden des Video's benötigt. Hier die Vorgehensweise, um die exakte Command-Line für rtmpdump zu ermitteln.

    Zunächst wird natürlich rtmpdump selbst benötigt. Falls die Homepage gerade down ist, findet man die aktuellste Version auch auf diversen Spiegel-Servern - einfach googeln.

    Nachdem man sich rtmpdump geladen und entpackt hat, findet sich im entpackten Verzeichnis auch das Programm rtmpsrv. Dieses Programm wird später unser Dummy-Server.

    Um nun den korrekten Streaming-Server zu ermitteln, gibt es einmal die Möglichkeit sich den Quelltext anzusehen. Wer hier etwas weniger Erfahrung hat, kann mittels des URL-Snoopers, die rtmp-Server ermitteln. Wir benötigen hier lediglich den Server-Name. Wenn Dort also rtmp://stream.server.com/... steht bzw. ermittelt wird, ist stream.server.com genau der Teil, den wir später noch benötigen.

    Bevor es richtig losgeht, erstellen wir noch eine Batch-Datei, die unsere Protokoll-Ausgaben von rtmpsrv in eine Text-Datei schreibt. Wir erstellen uns also eine .bat-Datei mit dem Inhalt:

    rtmpsrv > rtmpdump.txt

    rtmpdump.txt kann natürlich beliebig heißen. Die erstellte .bat kopieren wir in das Verzeichnis, wo auch rtmpsrv liegt.

    So, nun kommen wir langsam zum Kern. Zunächst wird mittels des Browsers ganz normal unser gewünschtes Video aufgerufen. Sobald das Video beginnt, beenden wir die Wiedergabe. Das Browser-Fenster muss jetzt geöffnet bleiben.
    Nun gaukeln wir dem Web-Player vor, dass der Streaming-Server auf unserem PC liegt. Hierzu ist eine Modifikation der hosts Datei notwendig. Diese liegt für gewöhnlich im Windows\System32\drivers\etc - Verzeichnis der System-Partition. Üblicherweise ist der Pfad dann C:\Windows\System32\drivers\etc . Bevor wir die hosts Datei ändern, wird ein Backup angelegt. Vista- und Windows7-Nutzer benötigen zudem Admin-Rechte, um hier weiterzumachen. Nachdem das Backup angelegt wurde, öffnen wir die hosts Datei mit einem Text-Editor. Am Ende der Datei wird nun unser ermittelter Streaming-Server wie folgt eingetragen:

    127.0.0.1 stream.server.com ' Werte müssen dem echten Server entsprechen

    Die hosts Datei wird nun nach der Änderung gespeichert. Sollte es an der Stelle zu Problemen kommen, ist ggfs. eine vorübergehende Deaktivierung des Viren-Scanners notwendig, wenn dieser die hosts Datei überwacht.

    Nachdem nun der Stream-Server durch die hosts Datei auf unseren PC verweist, benötigen wir noch einen lokalen rtmp-Server, mit dem der Web-Player kommunizieren kann. Gleichzeitig wird uns der Server einiges vom Player verraten.

    Jetzt kommt das Programm rtmpsrv ins Spiel. Das Programm gaukelt dem Web-Player einen RTMP-Server vor. Hierzu benötigen wir die am Anfang erstellte .bat Datei. Wir starten nun also unsere Bat-Datei, die den Server startet, wobei ja die Log-Ausgaben in die Datei rtmpdump.txt geschrieben werden.

    Nachdem die Batch-Datei läuft, wechseln wir wieder zum Browser-Fenster. Nun müssen wir lediglich noch einmal das Video neu starten, damit der Web-Player mit unserem Dummy-Server die Verbindung aufnimmt.
    Nach wenigen Sekunden (in der Regel sofort) wird in die Protokolldatei (rtmpdump.txt) die komplette Command-Line geschrieben, wie sie rtmpdump benötigt, um das gewünschte Video zu laden.
    Das jetzt natürlich kein Video abgespielt wird, ist völlig normal, da wir ja die hosts Datei manipuliert haben.

    Wir können nun den Browser schließen und auch die Bat-Datei beenden. In der rtmpdump.txt sollte jetzt wie schon erwähnt die komplette Command-Line stehen.

    Jetzt kann die alte hosts Datei wiederhergestellt werden (daher auch das Backup). Sollte der Virenscanner deaktiviert worden sein, kann dieser jetzt wieder aktiviert werden.

    Nachdem nun sämtliche Änderungen rückgängig gemacht wurden, können wir uns mit dem Download des Video's beschäftigen.

    Dies ist nun denkbar simpel. Wir öffnen eine MS-DOS Eingabeaufforderung und wechseln zum Verzeichnis mit rtmpdump. Nun öffnen wir die erstellte rtmpdump.txt und kopieren den kompletten Inhalt (ohne "Duplicate request, skipping.", falls das drinstehen sollte). Wir fügen den kompletten Inhalt in die MS-DOS-Eingabeaufforderung ein und drücken anschließend Enter.

    Geschafft, nun sollte rtmpdump den Stream auf die Platte schreiben.

    Edit: die Idee dieser Prozedur stammt übrigends von hier.

    Edit2: Falls die aufgezeichnete FLV-Datei ungewöhnliche Aussetzer hat, liegt das möglicherweise an einer zu kleinen Bandbreite des Internet-Anschlusses (DSL1000 od. kleiner). Es gibt leider mit einigen RTMP-Servern Probleme (habe ich vor allem beim RBB festgestellt). Ist die Bandbreite dagegen großzügig, wird die FLV-Datei problemlos geladen. Zu erkennen ist das in der Regel an einer identischen Dateigröße. Wird der Stream zwei- oder mehrmals gespeichert, muss die Datei stets identisch groß sein. Auch inhaltlich muss die Datei völlig Byte-identisch sein.

    rtmpdump:

    Folgt in Kürze!


    Viele Grüße
    earlgrey_tea
    Geändert von earlgrey_tea (16. 10. 2010 um 23:29 Uhr)

  2. #2
    (schein)heilig

    Moderator

    Avatar von Brother-John
    Registriert seit
    Mar 2001
    Ort
    Aiur
    Beiträge
    4.790

    Standard Re: Tutorial: Downloaden mit rtmpsuck, rtmpsrv, ...

    Das sieht doch sehr nützlich aus, auch wenn ich’s nicht im Detail beurteilen kann, weil ich weder Linux nutze noch besonders komplizierte Streams runterlade. Hab dich jedenfalls in die ultimative Liste aufgenommen.

    Weißt du, ob es die Programme evtl. auch für Windows gibt, dann wäre ein Link fein. Vom Vorgehen her dürfte es sich ja dann nicht großartig unterscheiden.

  3. #3
    Scheibenweltbewohner

    Moderator

    Avatar von TomKeller
    Registriert seit
    Sep 2005
    Ort
    überall & nirgendwo
    Beiträge
    10.251

    Standard Re: Tutorial: Downloaden mit rtmpsuck, rtmpsrv, ...

    Zitat Zitat von Brother-John Beitrag anzeigen
    Vom Vorgehen her dürfte es sich ja dann nicht großartig unterscheiden.
    Schön wäre es. Aber das ganze Rumhantieren mit IPTables gibt es in dieser (oder ähnlicher) Form ja in Windows nicht - was die Möglichkeiten der Tools leider stark einschränkt...

  4. #4
    - Avatar von Boesmann
    Registriert seit
    Feb 2006
    Ort
    Bremerhaven
    Beiträge
    3.501

    Standard Re: Tutorial: Downloaden mit rtmpsuck, rtmpsrv, ...

    Zitat Zitat von earlgrey_tea Beitrag anzeigen
    Das Tutorial richtet sich in erster Linie an LinuxUser.
    Zitat Zitat von Brother-John
    Weißt du, ob es die Programme evtl. auch für Windows gibt
    Zitat Zitat von earlgrey_tea
    Bevor es richtig losgeht, erstellen wir noch eine Batch-Datei (...) C:\Windows\System32\drivers\etc (...) Vista- und Windows7-Nutzer (...)
    Ähm ja, das scheint mir dann doch zum großen Teil eher ein Tut für Windows zu sein, oder?

  5. #5
    Scheibenweltbewohner

    Moderator

    Avatar von TomKeller
    Registriert seit
    Sep 2005
    Ort
    überall & nirgendwo
    Beiträge
    10.251

    Standard Re: Tutorial: Downloaden mit rtmpsuck, rtmpsrv, ...

    Ist offenbar 'n Misch-Masch : die Anleitung für rtmpsuck (auch auf rtmpsrv übertragbar) ist für Linux gedacht... die kopierte für rtmpsrv ist allerdings für Windows ausgelegt.

  6. #6
    Mitglied

    (Threadstarter)


    Registriert seit
    Aug 2010
    Beiträge
    26

    Wink Re: Tutorial: Downloaden mit rtmpsuck, rtmpsrv, ...

    Zitat Zitat von TomKeller Beitrag anzeigen
    Ist offenbar 'n Misch-Masch : die Anleitung für rtmpsuck (auch auf rtmpsrv übertragbar) ist für Linux gedacht... die kopierte für rtmpsrv ist allerdings für Windows ausgelegt.
    Ganz ehrlich ? Ob ich das Ding batch-Datei nenne oder shell-Skript ist für mich gehuppt wie gesprungen. Außerdem ist der "Trick" mit der host-Datei unter Linux genauso einfach möglich wie unter Windows. Die Windowsanleitung kann fast eins zu eins auf Linux übertragen werden.

    Im Falle von rtmpsrv ist Linux sogar ein Stück weit "mächtiger", da man im Zweifelsfall nicht nur eine Umleitung der Namensauflösung einrichten kann, sondern auch bestimmte host IP's durch den Localhost mit einer entsprechenden Regel in Ipstables umleiten kann.

    Ansonsten ist mir kein Weg bekannt, wie man unter Windows das Vorgehen bei rtmpsrv nachvollziehen kann. Wie Brother_John aber schon angedeutet hat, gibt es fast keine Seiten (mir ist momentan keine bekannt) die diese mehrfachen SecureTokens nutzt. Ich halte es aber für möglich, dass diese in Zukunft anzutreffen sein werden (nein, ich kann meine Vermutung nicht mit Fakten untermauern).

    Vielen Dank für euer Interessse!
    Viele Grüße
    earlgrey_tea

  7. #7
    Scheibenweltbewohner

    Moderator

    Avatar von TomKeller
    Registriert seit
    Sep 2005
    Ort
    überall & nirgendwo
    Beiträge
    10.251

    Standard Re: Tutorial: Downloaden mit rtmpsuck, rtmpsrv, ...

    Zitat Zitat von earlgrey_tea Beitrag anzeigen
    Die Windowsanleitung kann fast eins zu eins auf Linux übertragen werden.
    Ja... aber die Linux-Anleitung eben nicht auf Windows - was du ja selbst feststellst:

    Zitat Zitat von earlgrey_tea Beitrag anzeigen
    Im Falle von rtmpsrv ist Linux sogar ein Stück weit "mächtiger", da man im Zweifelsfall nicht nur eine Umleitung der Namensauflösung einrichten kann, sondern auch bestimmte host IP's durch den Localhost mit einer entsprechenden Regel in Ipstables umleiten kann.
    Daher verstehe ich den "Windows-Anteil" der rtmpsuck/rtmpsrv-Anleitung nicht - schließlich kann man beide unter Linux per Iptables verwenden. Und das wesentlich komfortabler, als es unter Windows möglich ist (z.B. ist unter Windows über die hosts Datei keine Umleitung von Ports möglich... und ebenfalls keine von IPs - unter Linux hingegen geht per Iptables beides).

    Ist nicht böse gemeint und diese Anleitung wird auch garantiert für zig Leute extrem hilfreich sein - nur verstehe ich halt nicht die Windows/Linux-Mischung. Sinvoller wäre doch eine reine Linux-Anleitung für rtmpsuck UND rtmpsrv (die alle Vorteile von Linux ausnutzt), oder eine reine Windows-Anleitung für beide, oder eine Windows-und-Linux-Anleitung für beide. N'est-ce pas?

  8. #8
    Mitglied

    (Threadstarter)


    Registriert seit
    Aug 2010
    Beiträge
    26

    Standard Re: Tutorial: Downloaden mit rtmpsuck, rtmpsrv, ...

    Zitat Zitat von TomKeller Beitrag anzeigen
    Ist nicht böse gemeint und diese Anleitung wird auch garantiert für zig Leute extrem hilfreich sein - nur verstehe ich halt nicht die Windows/Linux-Mischung. Sinvoller wäre doch eine reine Linux-Anleitung für rtmpsuck UND rtmpsrv (die alle Vorteile von Linux ausnutzt), oder eine reine Windows-Anleitung für beide, oder eine Windows-und-Linux-Anleitung für beide. N'est-ce pas?
    Hab's auch nicht so aufgefasst!

    Ich hab den Beitrag von mightyEx übernommen und dachte mir, wenn der Beitrag nicht von mir stammt kann ich ihn auch schlecht ändern.

    Wobei ... ach was solls, ich änder den Beitrag ein wenig, dann ist das Tutorial auf jeden Fall einheitlicher und strukturierter! (Werd aber erst am Wochenende dazu kommen.

    Viele Grüße
    earlgrey_tea

  9.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •