
Ich weiß, dass Internet Explorer in Windows .flv
temporäre Dateien im temporären Ordner ( C:\Users\%username%\AppData\Local\Microsoft\Windows\Temporary Internet Files
) speichert, wenn YouTube angezeigt wird. Und dasselbe gilt für Google Chrome in Windows ( C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Cache
). Es ist also einfach, eine Kopie dieser .flv
Datei zu finden.
Wie steht es mit Chromium in Ubuntu? Werden temporäre Browserdaten gespeichert und wo?
Antwort1
Ich habe ein wenig recherchiert und kann nun eine Antwort geben, die nicht so einfach ist, wie es auf den ersten Blick scheint.
Ich habe viel bei Google gesucht und fast alles verweist auf den ~/.cache/chromium/Default
Ordner. In diesem Ordner sollten Sie die Cache-Dateien von Google Chrome finden. Aber es gibt keine großen Flash-Videodateien (wie bei YouTube), nur kleine.
Um die Frage zu beantworten, bin ich schließlich zu folgenden Schlussfolgerungen gekommen:
- Zuerst müssen Sie ein YouTube-Video öffnen und es aus dem Internet streamen lassen.
- In einem Terminal ( Ctrl+ Alt+ T) sollten Sie die PID von Chromium erhalten, das das Flash Player-Plugin verwendet. Sie können verschiedene Befehle verwenden, aber dieser
ps
reicht völlig aus:ps ax | grep flash
. Sobald Sie diese PID haben, können Sie den Namen der Videodatei herausfinden, die gerade auf YouTube gestreamt wurde:
ls -l /proc/[*PID*]/fd | grep Flash
. Als Ergebnis sehen Sie ungefähr Folgendes:lrwx------ 1 [*user*] [*user*] 64 mai 2 09:48 [*video file name - is a number*] -> /tmp/FlashXX4PeKRY (deleted)`
Und hier ist die Antwort auf die Frage: Die letzte auf YouTube gestreamte und im System zwischengespeicherte Videodatei ist:
/proc/[*PID*]/fd/[*video file name - is a number*]
Wenn Sie möchten, können Sie sie jetzt an eine beliebige Stelle im System kopieren:
cp /proc/[*PID*]/fd/[*video file name - is a number*] ~/Videos/[*new video file name*].flv
Und nun haben Sie das zuletzt auf YouTube angesehene Video in Ihrer persönlichen Videosammlung.
Antwort2
Ich habe ein kleines Bash-Skript geschrieben, das die hervorragendeLösungausRadu:
#!/bin/bash
pidNum=$(ps ax | grep flash | grep chromium | grep -v "grep" | sed -e 's/^ *//g' -e 's/ *$//g' | tr -s " " | cut -d " " -f 1)
procNum=$(ls -l /proc/${pidNum}/fd | grep Flash | tr -s " " | cut -d " " -f 9)
filename=$1
if [[ "$filename" == "" ]]; then
filename=$procNum
fi
echo "Copying /proc/${pidNum}/fd/${procNum} to '${filename}.flv'"
cp /proc/${pidNum}/fd/${procNum} "${filename}.flv"
ls -lah "${filename}.flv"
Antwort3
Ich mache es manuell so: Definieren Sie diesen Alias in /etc/bash.bashrc
alias findflash='find /proc/ -maxdepth 1 -type d -exec lsfd.sh {} \;'
und erstellen Sie dieses Skript in /usr/local/bin/lsfd.sh
#!/bin/bash
ls -l $1/fd/ 2>/dev/null 3>/dev/null| grep -i 'flash' 1>/dev/null 2>/dev/null 3>/dev/null;
if [ $? -eq "0" ];
then
echo $1/fd/;
ls -l $1/fd/ | grep -i 'flash';
fi
Ergebnis:
root@juanmf-V570:/tmp# findflash
/proc/31591/fd/
lrwx------ 1 root root 64 Aug 19 23:59 37 -> /home/juanmf/.config/google-chrome/Default/Pepper Data/Shockwave Flash/.com.google.Chrome.9Oc0fE (deleted)
lrwx------ 1 root root 64 Aug 19 23:59 38 -> /home/juanmf/.config/google-chrome/Default/Pepper Data/Shockwave Flash/.com.google.Chrome.hcEvxv (deleted)
dann weiß ich, wo die Dateien sind, und kann mit mplayer sehen, welche ich möchte. Dann kopiere ich sie manuell.
Antwort4
Ich habe ein neues Bash-Skript zum Herunterladen von Flash-Videodateien geschrieben mitUbuntu 16.04UndChrom Version 62. Dank andieses Beispielaus mcbarron
Sie können auch im GitHub-Repository nachsehen
#!/bin/bash echo "Suche nach Flash-Dateien." getPidNum=$(lsof | grep Flash | grep gelöscht | tr -s " " | cut -d " " -f 2) pidNum="" für linePidNum in ${getPidNum}; mache wenn [[ "$pidNum" != "$linePidNum" ]]; dann pidNum=$linePidNum echo "PID-Nummer ist ${pidNum}" getProcNum=$(ls -l /proc/${pidNum}/fd | grep Flash | tr -s " " | cut -d " " -f 9) procNum="" für lineProcNum in ${getProcNum}; Tun wenn [[ "$procNum" != "$lineProcNum" ]]; dann procNum=$lineProcNum echo "Dateinummer ist ${procNum}" echo "Kopiere /proc/${pidNum}/fd/${procNum} nach '${procNum}.flv'" cp /proc/${PID-Nummer}/fd/${Prozeßnummer} "${Prozeßnummer}.flv" fi Erledigt fi Erledigt