
Sé que en Windows, Internet Explorer almacena .flv
archivos temporales en una carpeta temporal ( C:\Users\%username%\AppData\Local\Microsoft\Windows\Temporary Internet Files
) cuando visualiza YouTube. Y lo mismo marca y Google Chrome en Windows ( C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Cache
). Por eso es fácil encontrar una copia de ese .flv
archivo.
¿Qué tal Chromium en Ubuntu? ¿Almacena datos temporales de navegación y dónde?
Respuesta1
Investigué un poco y ahora puedo encontrar la respuesta que no es tan simple como parece a primera vista.
Busqué mucho en Google y casi todo apunta a la ~/.cache/chromium/Default
carpeta. Es la carpeta donde deberías encontrar los archivos de caché de Google Chrome. Pero no hay archivos de vídeo flash grandes (como los de YouTube), sólo archivos pequeños.
Al final, para responder a la pregunta, llegué a estas conclusiones:
- Primero, debes abrir un video de YouTube y dejar que se transmita desde Internet.
- En una Terminal ( Ctrl+ Alt+ T), deberías obtener el PID de Chromium que usa el complemento Flash Player. Puedes usar varios comandos, pero
ps
funcionarán bien:ps ax | grep flash
. Una vez que tenga este PID, podrá averiguar el nombre del archivo de vídeo que acaba de transmitirse en Youtube:
ls -l /proc/[*PID*]/fd | grep Flash
. Verás como resultado algo como esto:lrwx------ 1 [*user*] [*user*] 64 mai 2 09:48 [*video file name - is a number*] -> /tmp/FlashXX4PeKRY (deleted)`
Y aquí está la respuesta a la pregunta: el último archivo de vídeo transmitido en YouTube y almacenado en caché en el sistema es:
/proc/[*PID*]/fd/[*video file name - is a number*]
Ahora, si quieres, deberás copiarlos en cualquier parte del sistema:
cp /proc/[*PID*]/fd/[*video file name - is a number*] ~/Videos/[*new video file name*].flv
Y ahora tienes el último vídeo visto en Youtube en tu colección personal de Vídeos.
Respuesta2
Escribí un pequeño script bash que automatiza el excelentesoluciónderadu:
#!/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"
Respuesta3
Lo hago manualmente así: defino este alias en /etc/bash.bashrc
alias findflash='find /proc/ -maxdepth 1 -type d -exec lsfd.sh {} \;'
y cree este script en /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
resultado:
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)
entonces sé dónde están los archivos y uso mplayer para ver cuál quiero. luego copie manualmente.
Respuesta4
Escribí un nuevo script bash para descargar archivos de video flash usandoUbuntu 16.04ycromo versión 62. gracias aeste ejemplode mcbarron
También puedes verlo en el repositorio de github.
#!/bin/bash echo "Buscando archivos flash." getPidNum=$(lsof | grep Flash | grep eliminado | tr -s " " | cut -d " " -f 2) pidNum="" para linePidNum en ${getPidNum}; hacer if [[ "$pidNum" != "$linePidNum" ]]; entonces pidNum=$líneaPidNum echo "El número PID es ${pidNum}" getProcNum=$(ls -l /proc/${pidNum}/fd | grep Flash | tr -s " " | cut -d " " -f 9) númeroproc="" para lineProcNum en ${getProcNum}; hacer if [[ "$procNum" != "$lineProcNum" ]]; entonces procNum=$líneaProcNum echo "El número de archivo es ${procNum}" echo "Copiando /proc/${pidNum}/fd/${procNum} a '${procNum}.flv'" cp /proc/${pidNum}/fd/${procNum} "${procNum}.flv" fi hecho fi hecho