¿Dónde guarda Chromium los archivos de vídeo de YouTube?

¿Dónde guarda Chromium los archivos de vídeo de YouTube?

Sé que en Windows, Internet Explorer almacena .flvarchivos 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 .flvarchivo.

¿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/Defaultcarpeta. 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 psfuncionará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.

ingrese la descripción de la imagen aquí

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

información relacionada