Zum Download von YouTube-Videos gibt es zahlreiche Browser-Erweiterungen oder Kommandozeilen-Tools wie youtube-dl oder mps-youtube. Besonders youtube-dl hebt sich von anderen Programmen ab, da es neben YouTube auch zahlreiche weitere Videoportale sowie Mediatheken wie die der ARD oder des ZDF unterstützt. Möchte man hingegen beliebige Flash-Videos herunterladen, muss man etwas tricksen. Wer auf oft zweifelhafte „Lad-mir-jedes-Webvideo-auf-die-Platte“-Tools verzichten möchte, braucht lediglich ein wenig Know-how.

Für den Download von Flash-Videos aus dem Netz gibt es unzählige kleine Tools und Erweiterungen für alle gängigen Webbrowser. Manche Werkzeuge wie youtube-dl oder mps-youtube sind zweifelsfrei sehr seriös und zuverlässig. Besonders Browser-Erweiterungen werden jedoch oft nur zu dem Zweck entwickelt, Nutzerinnen und Nutzern unerwünschte Software unterzuschieben. So warnen etwa die Kommentare beim Flash Video Downloader für Firefox vor Spyware und zusätzlichen Werbeeinblendungen.

I used to use this #@&$ extension but these guys are spying on us and targeting us with annoying ads.
While the addon works well, you will get tracked and receive annoying adds. It took me some time to figure this out.

Ich für meinen Teil würde daher Abstand von solchen Browser-Erweiterungen nehmen – nicht nur wegen der beschriebenen Nebenwirkungen, sondern auch, weil sie oft gar nicht funktionieren oder nur mit wenigen Seiten kompatibel sind. Wer dennoch ein beliebiges Flash-Video von einer nicht unterstützten Webseite speichern möchte, kann sich mit Bordmitteln helfen. Wenn man weiß, wie es geht, ist das gar nicht kompliziert – es braucht nicht einmal spezielle Software, die Linux-eigenen Werkzeuge reichen völlig aus.

Beliebige Flash-Videos herunterladen

Am einfachsten funktioniert das mit Firefox, sofern ihr zuvor alle Tabs schließt, in denen Flash-Inhalte aktiv sind. Es sollte nur noch der Tab geöffnet sein, in dem das zu sichernde Flash-Video läuft. Öffnet anschließend ein Terminal und schaut euch mit pgrep oder ps aux die Prozessliste an, um laufende Prozesse mit „flash“ im Namen zu identifizieren.

$ pgrep -fl flash
15751 plugin-containe
25685 chrome
$ ps aux | grep flash
tux     15751 41.3 3.4 788024 126976 ? Sl 09:57 9:11 /usr/lib/firefox/plugin-container /usr/lib/mozilla/plugins/libflashplayer.so -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 14282 plugin
tux     25685 3.9 2.2 793908 82512 ? Sl 10:15 0:10 /opt/google/chrome/chrome --type=ppapi --channel=6799.76.279479360 --ppapi-flash-args --lang=de

Wie ihr seht, ist die Ausgabe von pgrep etwas übersichtlicher, da uns primär die angezeigte Prozess-ID interessiert. Das Beispiel mit ps aux dient nur der Vollständigkeit. Der Prozessname – in diesem Fall „plugin-container“ – zeigt an, welches Programm das Flash-Video ausführt. Für unseren Zweck brauchen wir die Prozess-ID, hier also 15751.

Flash-Videos mit Linux-Bordwerkzeugen auf die Festplatte herunterladen.
Flash-Videos mit Linux-Bordwerkzeugen auf die Festplatte herunterladen.

Mit dieser Prozess-ID könnt ihr euch nun die von diesem Prozess geöffneten Datei-Handles im Verzeichnis /proc ansehen. Ein einfaches ls reicht dazu völlig aus. Filtert die Ausgabe am besten gleich mit grep Flash, um direkt den temporären Dateinamen im /tmp-Verzeichnis zu identifizieren. Das „(deleted)“ hinter dem Dateinamen ist dabei kein Problem.

$ ls -alh /proc/15751/fd/
insgesamt 0
dr-x------ 2 tux users 0 28. Nov 09:57 .
dr-xr-xr-x 8 tux users 0 28. Nov 09:57 ..
lr-x------ 1 tux users 64 28. Nov 09:57 0 -> /dev/null
lrwx------ 1 tux users 64 28. Nov 09:57 1 -> socket:[69166]
...
lrwx------ 1 tux users 64 28. Nov 09:57 15 -> /tmp/FlashXX3mz3Hh (deleted)
lr-x------ 1 tux users 64 28. Nov 09:57 16 -> pipe:[78586]
...
$ ls -alh /proc/15751/fd | grep Flash
lrwx------ 1 tux users 64 28. Nov 09:57 15 -> /tmp/FlashXX3mz3Hh (deleted)

Damit habt ihr euer Flash-Video identifiziert. Ihr könnt es direkt mit einem Mediaplayer wie VLC abspielen. Da das /tmp-Verzeichnis beim Neustart gelöscht wird, solltet ihr das Video aber besser in euer Homeverzeichnis kopieren.

$ cp /proc/15751/fd/15 ~/flash-video.mp4

Bevor ihr das Video aber abspeichert, solltet ihr bedenken, dass es sich in der Regel um einen gestreamten Inhalt handelt. Besonders bei längeren Videos müsst ihr warten, bis das Video vollständig abgespielt wurde. Kopiert die Datei daher zwischendurch und überprüft die Dateigröße – solange diese wächst, ist der Stream noch nicht vollständig im Cache.

$ cp /proc/15751/fd/15 ~/flash-video.mp4
$ ls -alh ~/flash-video.mp4
-rw------- 1 tux users 98M 28. Nov 10:38 /home/tux/flash-video.mp4
$ cp /proc/15751/fd/15 ~/flash-video.mp4
$ ls -alh ~/flash-video.mp4
-rw------- 1 tux users 183M 28. Nov 11:11 /home/tux/flash-video.mp4

Das gespeicherte Video lässt sich nun mit jedem gängigen Mediaplayer abspielen. VLC und MPlayer bringen ihre eigenen Codecs mit, während Totem oder Dragon Player auf systemweite Codecs zugreifen. Auch mein mit OpenELEC und XBMC (bzw. künftig Kodi) ausgestatteter Raspberry Pi spielt die Videos problemlos ab.

Abonnieren
Benachrichtigungen:
guest
16 Kommentare
älteste
neuste
Inline Feedbacks
Zeige alle Kommentare
Rouven

Ich benutze sehr lange schon das FF Addon „Video Downloadhelper“, ist daran etwas verkehrt? Konnte im Netz nichts negatives darüber finden.

https://addons.mozilla.org/de/firefox/addon/video-downloadhelper/

FSMaxB

Ich verwende auch schon seit Jahren Video Download-Helper für diesen Zweck. Das hat bisher auch wirklich überall funktioniert, wo kein DRM zum Einsatz kam.

Fjunchclick

Das ist sehr interessant. Leider hatte ich damit keinen Erfolg.

Ich habe es gerade einmal ausprobiert.
Habe mir auf Youtube ein Video angeschaut.

Dann gibt:

lars@farnsworth:~$ pgrep -fl flash

386 plugin-containe

Weiter:

lars@farnsworth:~$ ls -alh /proc/386/fd/ | grep Flash

ergibt:

lars@farnsworth:~$

also nichts.

Habe das gemacht, solange das Video noch lief, als auch, nachdem es schon beendet war.
Dann habe ich meinen Iceweasel noch einmal sicherheitshalber mit einem neuen Profil gestartet, also ohne Addons und mit sauberer Konfiguration.
Ergebnis war leider dasselbe.

Ungegrept ergibt eine Auflistung des entsprechenden Verzeichnisses übrigens:

lars@farnsworth:~$ ls -alh /proc/386/fd
insgesamt 0
dr-x------ 2 lars lars  0 Nov 28 13:56 .
dr-xr-xr-x 9 lars lars  0 Nov 28 13:56 ..
lr-x------ 1 lars lars 64 Nov 28 13:56 0 -> /dev/null
lrwx------ 1 lars lars 64 Nov 28 13:56 1 -> socket:[37027]
lr-x------ 1 lars lars 64 Nov 28 13:56 10 -> pipe:[38120]
l-wx------ 1 lars lars 64 Nov 28 13:56 11 -> pipe:[38120]
lrwx------ 1 lars lars 64 Nov 28 13:56 12 -> socket:[37642]
lr-x------ 1 lars lars 64 Nov 28 13:56 13 -> /dev/urandom
lr-x------ 1 lars lars 64 Nov 28 13:56 14 -> /home/lars/.mozilla/firefox/9bumsmu3.default/cert8.db
lr-x------ 1 lars lars 64 Nov 28 13:56 15 -> /home/lars/.mozilla/firefox/9bumsmu3.default/key3.db
lrwx------ 1 lars lars 64 Nov 28 13:56 16 -> /dev/nvidiactl
lrwx------ 1 lars lars 64 Nov 28 13:56 17 -> /dev/nvidia0
lrwx------ 1 lars lars 64 Nov 28 13:56 18 -> /dev/nvidia0
lrwx------ 1 lars lars 64 Nov 28 13:56 19 -> /dev/nvidia0
lrwx------ 1 lars lars 64 Nov 28 13:56 2 -> socket:[37027]
lrwx------ 1 lars lars 64 Nov 28 13:56 20 -> /dev/nvidia0
lrwx------ 1 lars lars 64 Nov 28 13:56 21 -> /dev/nvidia0
lrwx------ 1 lars lars 64 Nov 28 13:56 22 -> /dev/nvidia0
lrwx------ 1 lars lars 64 Nov 28 13:56 23 -> /dev/nvidia0
lr-x------ 1 lars lars 64 Nov 28 13:56 24 -> pipe:[38162]
l-wx------ 1 lars lars 64 Nov 28 13:56 25 -> pipe:[38162]
lr-x------ 1 lars lars 64 Nov 28 13:56 26 -> pipe:[38163]
l-wx------ 1 lars lars 64 Nov 28 13:56 27 -> pipe:[38163]
lrwx------ 1 lars lars 64 Nov 28 13:56 28 -> socket:[37705]
lrwx------ 1 lars lars 64 Nov 28 13:56 3 -> socket:[38037]
lrwx------ 1 lars lars 64 Nov 28 13:56 4 -> anon_inode:[eventfd]
lr-x------ 1 lars lars 64 Nov 28 13:56 5 -> pipe:[37640]
l-wx------ 1 lars lars 64 Nov 28 13:56 6 -> pipe:[37640]
lrwx------ 1 lars lars 64 Nov 28 13:56 7 -> anon_inode:[eventpoll]
lrwx------ 1 lars lars 64 Nov 28 13:56 8 -> socket:[38118]
lrwx------ 1 lars lars 64 Nov 28 13:56 9 -> socket:[38119]
lars@farnsworth:~$ ls -alh /proc/386/fd

Irgendeine Idee?

Fjunchclick

Ist das nicht nur so, wenn kein Flashplayer installiert ist? Wenn ich einen Rechtsklick auf das laufende Video mache, bekomme ich jedenfalls im Kontextmenü die Einträge bezüglich des installierten Flashplayers angeboten.

Ich habe es aber auch noch einmal auf Spon und auf Golem versucht.
Gleiches Ergebnis.

golem-gucker

Golem verwendet einen HTML5 Player mit MP4-Dateien, zumindest bei neueren Videos; Uraltvideos (keine Ahnung wann Golem auf MP4 umgestellt hatte) werden mit diesem eventuell nicht abgespielt da dort die Videodatei aus einer FLV-Datei besteht.

Fjunchclick

OK, ich bin da wohl beim rumprobieren etwas durcheinander gekommen.
Bei Youtube scheint es tatsächlich nicht zu funktionieren, auch wenn der Flashplayer installiert ist.
Und bei Golem ist es so, dass es erst dann geht, wenn die Werbung vor dem Video zu Ende ist. Was ja nun auch kein Nachteil ist.

Also: Es funktioniert.
Vielen Dank für den Tipp, das ist wirklich cool. 🙂

chris_blues

Hallo!
Ich nutze seit geraumer Zeit smtube : http://smplayer.sourceforge.net/smtube.php . Da kann man sich gemütlich erstmal eine Vorschau im mplayer ansehen, und die Videos auch direkt abspeichern. Sehr bequem – ich möcht es nicht mehr missen…

Jruß
chris

Tobias

In einer Shellfunktion zusammengefasst:
Liefert die Filedescriptoren aller aktuellen Flashvideos im Firefox.
Bitte überprüft ob das auch auf anderen System die erwarten Ergebnisse liefert und dann ab in die Shellconfig damit.
(Bin mir z. B. nicht sicher ob das Newline zwischen den Ergebnissen von allen Programmen so aktzeptiert wird

getFlashvideos()
{
	pid=$(pgrep -f libflashplayer.so)
	for descriptor in $(\ls -l "/proc/$pid/fd" | grep "/tmp/Flash*" | cut --delimiter=" " -f 9);
	do
		echo "/proc/$pid/fd/$descriptor"
	done
}
Gouryella

Christoph, mal eine Frage:

Wenn ich das richtig verstanden habe, beschränkt sich die Methode ja auf .flv-Dateien. Gerade YouTube gibt aber noch zahlreiche weitere Formate aus, darunter WebM, Avi und MP4. Kann man auch Videos dieser Dateiformate damit rausbekommen oder würdest du eher dazu raten, erst nur das Flash-Video zu holen und anschließend lieber einen Converter wie Handbrake drüberrutschen zu lassen?

Mat

Ich lade Flash Videos fast immer mit Adblock herunter. Geht mit Adblock Plus oder Ad Block Edge – man braucht die Funktion „blockierbare Elemente öffnen“

Einfach blockierbare Elemente auf der Webseite öffnen und nach „Typ“ Objekanfrage suchen. Meist gibt es im Link bereits die mp4 (meist http://……cdn…..mp4) oder was auch immer. Den Link speichern (rechtsklick Adresse des Elements kopieren) und per downloadmanager lässt sich das Video komplett laden.

Es gibt nur einige wenige Seiten, bei denen das nicht geht, da sie die Flash Datei bzw. den Film in kleinen Stücken abspielen und immer und immer wieder einen neuen Link generieren (alle paar Sekunden). Das ist aber die Ausnahme.

In 99% der Fälle funktioniert das und man muss auch nicht auf dem Browser Tab bleiben bis das Video abgespielt wurde – es wird immer runter geladen.