Wie kann ich über Streaming-Websites auf Flash-Dateien zugreifen?

30

In Maverick gab es eine Option zum Herunterladen von Flash-Videos von Websites wie YouTube, Vimeo usw., indem die flashxx**Datei im /tmpVerzeichnis an einen anderen Speicherort kopiert wurde, bevor das Fenster geschlossen wurde. Aber in Firefox 4 in Natty funktioniert das nicht mehr. Warum?

avi
quelle
Wenn Sie nur Videos herunterladen möchten, empfehle ich Clipgrab: clipgrab.de . Sie haben ein PPA: launchpad.net/~clipgrab-team
Martin Thoma

Antworten:

26

Durch ein Update des Flash-Plugins wurde der Speicherort von /tmpin das Firefox-Cache-Verzeichnis geändert (z ~/.mozilla/firefox/bq95m4w1.default/Cache. B. ). Leider ist die zwischengespeicherte Flash-Datei nicht so leicht zu finden wie zuvor, aber es ist möglich.

Der folgende Befehl listet alle Flash-Dateien in Ihrem Firefox-Cache auf.

find ~/.mozilla/firefox/*.default/Cache -type f -exec file {} \;  | grep Flash

Auf neueren Versionen von Ubuntu versuchen

find ~/.cache/mozilla/firefox/*.default/Cache -type f -exec file {} \;  | grep Flash
Woozy
quelle
1
Warum nicht file ~/.mozilla/firefox/*.default/Cache/* | grep Flash? Das Cache-Verzeichnis scheint keine Unterverzeichnisse zu haben, die die Verwendung von rechtfertigen könnten find.
Enzotib
funktioniert nicht wahrscheinlich schon mal gearbeitet.
Dumb906
Die FLV-Datei befindet sich immer noch in / tmp, Sie benötigen jedoch einen speziellen Trick, um darauf zuzugreifen.
user4124
Siehe meine Antwort unten, in der es um die Wiederherstellung der FLV-Datei mit dem Dateisystem / proc geht. Sie können jedoch eines der Firefox-Addons verwenden, um dieselbe Aufgabe auszuführen.
user4124
28

Sie können mehrere Firefox-Addons verwenden, um die FLV-Dateien von vielen Websites wie Youtube zu extrahieren.

Im Folgenden wird gezeigt, wie dies mit der neuesten Version des Flash-Plugins MANUELL durchgeführt wird.

  1. Besuchen Sie das YouTube-Video und warten Sie, bis es vollständig heruntergeladen wurde.
  2. Führen Sie dann den Befehl von der Befehlszeile aus

    $ lsof -n | grep Flash

    Hier werden die Dateien (auch Speicherdateien !) angezeigt und nach denen gefiltert, die Flashim Namen enthalten sind.

  3. Sie bekommen so etwas wie

    plugin-co 2461 user 17u REG 8,5 1693301 524370 /tmp/FlashXXVkHEM6 (deleted).

    Jetzt gibt es ein /tmp/FlashXXVkHEM6aber es wurde gelöscht.

  4. Wenn eine Datei unter Linux gelöscht wird, ist sie tatsächlich erst dann gelöscht, wenn alle Programme, die sie zuvor geöffnet haben, geschlossen wurden. Das heißt, das Flash-Plugin verwendet einen Trick, um die Datei / tmp / FlashXXVkHEM6 auszublenden. Es schafft es und sofort deleteses. Da das Flash-Plugin jedoch weiterhin ausgeführt wird, kann es es anscheinend weiterhin verwenden.

  5. In der obigen Zeile notieren wir die Nummer 2461, die die Prozess-ID ist. In deinem Fall wird es wahrscheinlich anders sein. Dann renne

    $ cd /proc/2461/fd

    und schließlich ausführen

    $ ls -l

    Dies zeigt Ihnen die Speicherdateien und speziell

    lrwx------ 1 user user 64 2011-09-16 10:23 17 -> /tmp/FlashXXVkHEM6 (deleted)

    Die Nummer '17' (in meinem Fall) ist der Dateiname, mit dem Sie auf die gelöschten Dateien zugreifen können /tmp/FlashXXVkHEM6. Deshalb einfach laufen

    $ cp 17 /tmp/myyoutubevideo.flv

    und du stellst das Youtube Video wieder her!

Das ist es! Sie haben das Youtube-Video manuell wiederhergestellt!

user4124
quelle
7

Wenn Sie zu Ihrem / proc-Ordner navigieren, sehen Sie eine Reihe von Ordnern, die alle numerisch benannt sind, einschließlich eines Ordners, der mit der Nummer im zweiten Feld übereinstimmt.

Navigieren Sie nun zu diesem Ordner und dann zu seinem Unterordner "fd". In diesem Ordner sehen Sie eine ganze Auswahl an Zahlen. Diese beziehen sich auf die Dateideskriptoren selbst.

Führen Sie ls -lin diesem Ordner aus, und Sie werden sehen, dass jede dieser Nummern entweder mit Pipes, Sockets oder Dateien verknüpft ist.

Innerhalb dieses Feldes wird die Nummer aus dem vierten Feld symbolisch mit der / tmp / Flash * -Datei verknüpft, die wir zuvor gefunden haben.

Um zu testen, ob dies die richtige Datei ist, können Sie sie über mplayer oder vlc ( mplayer filedescriptornumber/ vlc filedescriptornumber) ausführen . Wenn Sie den Dateinamen nicht finden können, versuchen Sie es ls -l | grep Flash.

Probieren Sie einfach diesen Befehl in der Konsole aus:

stat -c %N /proc/*/fd/* 2>&1|awk -F[\`\'] '/Flash/{print$2}'

Die Ausgabe wird ungefähr so ​​aussehen:

/proc/4691/fd/17
/proc/4691/fd/18

Daraufhin werden alle heruntergeladenen Flash-Streams aufgelistet. Für dieses Beispiel gibt es 2 Flash-Videos von meinem Firefox 4-Browser. Wenn Sie es kopieren möchten, verwenden Sie einfach diesen Befehl:

cp /proc/4691/fd/17 ~/Videos/Flash/sample.flv

Quelle: http://n00bsys0p.wordpress.com/2011/02/10/how-to-download-flash-10-2-video-streams-in-linux/

squallbayu
quelle
5

Dieses kleine Skript speichert Ihre heruntergeladenen Flash-Dateien in einem benutzerdefinierten Verzeichnis.

  1. Legen Sie das Verzeichnis fest, in dem die Dateien gespeichert werden sollen, z. B. ~ / Videos / flvs

    mkdir ~/Videos/flvs
    
  2. Öffne gedit und kopiere und füge dieses Skript ein.

    #!/bin/bash
    # flvcache script
    
    CACHE=~/.mozilla/firefox/*.default/Cache
    OUTPUTDIR=~/Videos/flvs
    MINFILESIZE=2M
    
    for f in `find $CACHE -size +$MINFILESIZE`
    do
        cp "$f" "$OUTPUTDIR/$o"
    done
    
    nautilus  "$OUTPUTDIR"&
    
  3. Speichern Sie die Datei unter dem Namen saveflashall.sh und fügen Sie der Datei dann ausführbare Berechtigungen hinzu

    chmod +x saveflashall.sh
    
  4. dann starte es.

    ./saveflashall.sh
    

Es würde dann die Dateien im ersten oben erstellten Ordner öffnen. Angepasst, um alle Dateien (für MPEG und MP4) anstelle von nur FLVs einzuschließen.

Credits finden Sie unter http://desdecode.blogspot.com/2011/04/saving-watched-online-videos-linux.html

dumb906
quelle
Ich habe das ausprobiert. Einige Videos, die ich mir vor langer Zeit angesehen habe, befinden sich jetzt in diesem Ordner, aber die, die ich mir gerade angesehen habe, sind es nicht. Warum?
Avi
4

Soweit ich weiß, liegt das nicht an Firefox oder Natty, sondern an einem Flash-Update ...

Sie können den http-Stream mit abrufen wiresharkoder ein Tool verwenden youtube-dl, um die Filmdatei abzurufen.

Denken Sie jedoch daran, dass dies möglicherweise nicht legal ist. Überprüfen Sie daher die örtlichen Gesetze.

LassePoulsen
quelle
Ordentlicher Trick mit dem Wireshark, aber ich denke, das kann anstrengend sein, da die Videos ziemlich groß sind (mehr als 10 MB), während Pakete mit einem winzigen Teil dieser Daten geliefert werden :)
Rafał Cieślak
3

Sie sollten flashgot verwenden , um die Videos herunterzuladen.

RolandiXor
quelle
3

Ubuntu 12.04 (Precise) - Firefox 11 Anleitung Eine modifizierte Version des Bash-Skripts von chlumma1.

Speichern Sie den folgenden Code mit einem Texteditor in der Datei "getvids.sh". Verschieben Sie es an den Ort, an dem Sie Videos speichern möchten. Klicken Sie mit der rechten Maustaste auf die Datei, wechseln Sie zu Eigenschaften, ändern Sie die Berechtigungen zu "Ausführung als Programm zulassen".

Alles, was Sie tun müssen, ist auf das Skript zu klicken, "In Terminal ausführen" auszuwählen und alle Videodateien in diesem Verzeichnis zu speichern. Um das gesamte Video zu speichern, muss es in Ihrem Browser vollständig geladen sein. Es speichert Videos von fast jeder Website, einschließlich YouTube, Vimeo, Dailymotion, Metacafe, Liveleak, Facebook . Löschen Sie einfach alle nicht gewünschten Videodateien.

(Wenn ein gewünschtes Video nicht gespeichert wird, verwendet die Website wahrscheinlich ein proprietäres Stream-Format, das von keinem Cache-Abrufprogramm gespeichert werden kann. Beispiele: Hulu, Netflix, einige YouTube-Videos?) Außerdem ist der VLC-Player ein ideal zum Ansehen von Flash-Videos.

#!/usr/bin/env bash
# getvids.sh [save_folder]

SAVE_FOLDER="$HOME" # User editable

# If the below option is used, then this script should be run in a terminal.
#CPMOD="-i" # Uncomment to prevent file overwrites

PATERN="libflashplayer"
ALL_PID=`pgrep -f $PATERN`

if [ $? -eq 1 ]; then
  echo ERROR: Flashplayer not running
  exit 1
fi

if [ ! -z $1 ]; then
  echo "Setting save location: $1"
  SAVE_FOLDER="$1"
fi

if [ ! -d "$SAVE_FOLDER" ]; then
  echo "Save location doesn't exist: $SAVE_FOLDER"
  exit 1
fi

for PID in $ALL_PID; do
  declare -a OUTFILES=($(ls -lt1 /proc/$PID/fd | grep '/tmp/Flash' | sed 's/^.*\/tmp\///' | sed 's/\ .*$//'))
  declare -a FDS=($(ls -lt1 /proc/$PID/fd | grep '/tmp/Flash' | awk '{ print $9 }' ))
  for ((i=0; i<${#FDS[@]}; i++)); do
    saveas="$SAVE_FOLDER/${OUTFILES[i]}.flv"
    echo "Copying video ${FDS[i]} to $saveas"
    cp $CPMOD "/proc/$PID/fd/${FDS[i]}" "$saveas"
  done
done

Diejenigen, die etwas über das Terminal wissen, können die ersten beiden Variablen bearbeiten und ein wenig zusätzliche Funktionalität erhalten. Um die Dateien live anzuzeigen, können Sie diese auch in ein Terminal eingeben, um herauszufinden, wo sie sich befindenfor i in $(pgrep -f libflash); do find /proc/$i/fd/ -ls | grep "/tmp/Flash" | awk '{ print $11 }'; done

PS. Auch ausgezeichnete Arbeit chlumma1, aber lass die C-Programmierstil-Schleifen ein bisschen;)

Sepero
quelle
2

Aktuelle Versionen des Flash-Plugins verbergen die temporäre Datei, indem sie als gelöscht markiert werden. Praktischerweise wird der Videostream in eine "gelöschte Datei" heruntergeladen. Selbst wenn eine Datei gelöscht wird, können Sie ihren Dateideskriptor und folglich den Dateiinhalt finden, wenn die Datei von einem Prozess geöffnet wird.

Dieses einfache Skript druckt die Dateideskriptoren der geöffneten Flash-Videos aus:

file /proc/*/fd/* 2>/dev/null | grep Flash | cut -f1 -d:

Und Sie möchten wahrscheinlich eine reguläre Datei aus dem Dateideskriptor erstellen, zum Beispiel:

cp $(file /proc/*/fd/* 2>/dev/null | grep Flash | cut -f1 -d: | head -n 1) video.avi

Andernfalls ist der Dateideskriptor nicht sehr praktisch (denken Sie daran, es ist eine gelöschte Datei!)

Die Methode sollte unabhängig von Ihrem Browser funktionieren.

Hör auf, Monica weiter zu schaden
quelle
1

Hey, dieses Problem gab es schon in 10.10. Also, um es zu lösen, versuchen Sie Folgendes:

None of the methods described by previous posters are as convenient as just copying the flash file from the tmp directory.

Therefore, what I did was downgrade my Flash to 10.1.102.64

The download link for older versions of flash is http://kb2.adobe.com/cps/142/tn_14266.html

Download the (large) file named "Flash Player 10.1.102.64 and 9.0.289.0".
After downloading, extract the file named flashplayer10_1r102_64_linux.tar.gz

From this file extract libflashplayer.so and overwrite the file at /usr/lib/flashplugin-installer (you will need root privileges, try gksudo nautilus)

Restart Firefox and your flash videos will land up in the /tmp directory as before! This won't work for Google Chrome, it will continue to use the latest version of Flash.

Note: For the above steps to work, a version of Adobe Flash should have been previously installed.

[Zitiert von dieser Seite: Gepostet von chetancrasta Beitrag anzeigen ]

Ich hoffe, dies wird dir helfen. Lassen Sie mich wissen, ob das funktioniert.

Vito
quelle
Ich denke, Sie haben die Frage falsch verstanden. Auf dem Originalposter ist Flash Player bereits installiert und funktioniert. Er fragt sich nur, wo Flash seine temporären Dateien speichert.
Jeremy Bicha
Ya. Recht. Aber ich glaube, er fragt sich, wo die Flash-Dateien geblieben sind. Mit der neuen Version des Adobe Flash Players werden sie wie bereits erwähnt unter @Woozy gespeichert. @Woozy erwähnte auch, dass die "zwischengespeicherte Flash-Datei nicht so leicht zu finden ist wie zuvor". Wenn Sie möchten, dass die Flash-Datei wieder "einfach" ist, können Sie Ihren Flash-Player downgraden. Folglich werden die Flash-Dateien wieder in / tmp gespeichert ... Ich hoffe, Sie verstehen meinen Punkt jetzt !? Oder liege ich falsch ?
Vito
1

Versuchen Sie für eine allgemein anwendbare Methode, die mit Chrome oder Firefox funktioniert, dieses kleine Programm namens Flashcache . Es kopiert Flash-Videos, die gerade wiedergegeben werden, in das aktuelle Verzeichnis.

Mein Patch fügt die Option hinzu, mit der -pdas Skript die Videos wiedergibt, mplayeranstatt Kopien der Dateien zu erstellen.

Loevborg
quelle
1

Obwohl ich die Frage nicht direkt beantwortete, stieß ich auf dasselbe Problem und fand nach einiger Suche Clipgrab, das viel einfacher zu verwenden ist.

Cas
quelle
1

Sie können diesen Befehl in einem Terminal versuchen

cp \`file /proc/\*/fd/* | grep tmp/Flash | awk -F":" '{print$1}'` dirname/
Susman
quelle
1

folge diesem Link ( ~/.mozilla/firefox/ewzggcll.default/Cache)

Es sei denn, ich bin wirklich verwirrt (glaube nicht), dass "ewzggcll" nicht in Ihrer Maschine sein wird. Was Sie dort finden werden, ist eine zufällige Sammlung von Buchstaben (und möglicherweise Zahlen?), Die sehr wahrscheinlich nur in Ihrer Linux- und Firefox-Installation vorkommt. Trotzdem ist diese seltsam aussehende zufällige Sammlung wichtig, da sie für den Zugriff auf den Cache unerlässlich ist.

Hoffe das hilft! (HTH)

Jayfro
quelle
1

Ich benutze SMplayer YouTube. Es wird mit Smplayer geliefert, den Sie im Ubuntu Software Center installieren. Es zeichnet YouTube-Videos auf. sehr einfach und leicht zu bedienen.

user297921
quelle
Ich kann bestätigen, dass dies funktioniert. Ubuntu 14.04. Ich kann nicht glauben, dass ich meine Zeit damit verschwendet habe, alle Antworten hier und überall im Internet mit KEINEM ERFOLG zu versuchen, bis ich dazu kam. in dem Format und der Größe meiner Wahl ...: D
PFROLIM
1

ich benutze minitube einen YouTube-Client, auf dem Flash-Dateien gespeichert werden/tmp

user20043
quelle
1

Dieses Skript erledigt das:

#!/bin/bash
PATERN="libflashplayer"
ALL_PID=`pgrep -f $PATERN`

if [ $? -eq 1 ]
then
echo ERROR: Flashplayer not runnig
exit 1
 fi


 for PID in $ALL_PID
 do

OUTFILES=`ls -lt1 /proc/$PID/fd | grep '/tmp' | sed 's/^.*\/tmp\///' | sed 's/\ .*$//'`
INFD=`ls -lt1 /proc/$PID/fd | grep '/tmp' | cut -f 9 -d \ `


# nazev souboru do pole
i=0;
for out in $OUTFILES
do
    i=`expr $i + 1`
    NAMEFILE[$i]=$out

done

# nazev file desktiptoru do pole
i=0;
for out in $INFD
do
    i=`expr $i + 1`
    NAMEFD[$i]=$out
done



# ulozeni video dat
i=0;
for outfd in $OUTFILES
do
    i=`expr $i + 1`
    #echo ${NAMEFILE[$i]} ${NAMEFD[$i]}

    cat /proc/$PID/fd/${NAMEFD[$i]} > ${NAMEFILE[$i]}.flv
done

done
chlumma1
quelle
0

Mozilla scheint den Speicherort zu häufig zu ändern. Außerdem ist der Name des Puffers nicht mit dem des Videos identisch, sodass es auch schwierig ist, den entsprechenden Namen aus dem Heap zu ermitteln. Das Speichern der zwischengespeicherten Datei ist daher keine konsistente Lösung. Wenn die Installation eines Desktop-Programms in Ordnung ist, ist ClipGrab das beste Tool auf dem Markt. Sie können

  1. Suche nach Videos.
  2. Wählen Sie die Qualität des herunterzuladenden YouTube-Videos.
  3. Wählen Sie das Format des herunterzuladenden Videos.
  4. Sie können einfach eine YouTube-Video-URL angeben und die Datei wird heruntergeladen.

ClipGrab zum Herunterladen von YouTube-Videos in Ubuntu .

Arunskrish
quelle
0

Sie können keepvid.com auch für viele Video-Streaming-Sites verwenden. Java muss jedoch auf Ihrem Computer installiert sein. Einmal installiert, fügen Sie einfach den URL-Link ein und speichern Sie ihn in einer Vielzahl von Formaten, einschließlich mp4 oder WebM

mattibuntu
quelle
0

Die einfachste Methode ist die Verwendung des Addons "CacheViewer Continued 0.8" für Firefox

Nach der Installation drücken Sie STRG + UMSCHALT + C, um zu öffnen, und drücken Sie dann ALLE ANZEIGEN. Nachdem Sie nach einem bestimmten Cache wie JPEG oder FLV gesucht haben, können Sie mit der linken Maustaste auf das Element klicken und speichern Geben Sie die erforderliche Erweiterung wie .flv für Flash-Video und .jpeg für JPEG und umgekehrt an Bildbeschreibung hier eingeben

Link für das Addon https://addons.mozilla.org/en-US/firefox/addon/cacheviewer-continued/?src=api

Gunjan Parashar
quelle