Onde o Chromium mantém os arquivos de vídeo do YouTube?

Onde o Chromium mantém os arquivos de vídeo do YouTube?

Eu sei que no Windows, o Internet Explorer armazena .flvarquivos temporários em uma pasta temporária ( C:\Users\%username%\AppData\Local\Microsoft\Windows\Temporary Internet Files) ao visualizar o YouTube. E a mesma marca e Google Chrome no Windows ( C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Cache). Portanto, é fácil encontrar uma cópia desse .flvarquivo.

Que tal o Chromium no Ubuntu? Ele armazena dados temporários de navegação e onde?

Responder1

Pesquisei um pouco e agora posso chegar à resposta que não é tão simples como parece à primeira vista.

Pesquisei muito no Google e quase tudo aponta para a ~/.cache/chromium/Defaultpasta. É a pasta onde você deve encontrar os arquivos de cache do Google Chrome. Mas não existem grandes arquivos de vídeo em flash (como o YouTube), apenas pequenos.

No final, para responder à pergunta, cheguei a estas conclusões:

  • Primeiro, você precisa abrir um vídeo do YouTube e deixá-lo transmitir da Internet.
  • Em um Terminal ( Ctrl+ Alt+ T), você deve obter o PID do Chromium que usa o plugin Flash Player. Você pode usar vários comandos, mas psfuncionará perfeitamente: ps ax | grep flash.
  • Depois de ter esse PID você poderá descobrir o nome do arquivo de vídeo que acabou de ser transmitido no Youtube: ls -l /proc/[*PID*]/fd | grep Flash. Você verá como resultado algo assim:

    lrwx------ 1 [*user*] [*user*] 64 mai 2 09:48 [*video file name - is a number*] -> /tmp/FlashXX4PeKRY (deleted)`
    

    E aqui está a resposta para a pergunta: o último arquivo de vídeo transmitido no YouTube e armazenado em cache no sistema é:

    /proc/[*PID*]/fd/[*video file name - is a number*]
    
  • Agora, se quiser, você deve copiá-los em qualquer lugar do sistema:

    cp /proc/[*PID*]/fd/[*video file name - is a number*] ~/Videos/[*new video file name*].flv
    

    E agora você tem o último vídeo assistido no Youtube em sua coleção pessoal de Vídeos.

insira a descrição da imagem aqui

Responder2

Eu escrevi um pequeno script bash que automatiza o excelentesoluçãodeRadu:

#!/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"

Responder3

Eu faço isso manualmente assim: defina este alias em /etc/bash.bashrc

alias findflash='find /proc/ -maxdepth 1 -type d -exec lsfd.sh {} \;'

e crie este script em /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)

então eu sei onde estão os arquivos e uso o mplayer para ver qual deles eu quero. em seguida, copie manualmente.

Responder4

Eu escrevi um novo script bash para baixar arquivos de vídeo flash usandoUbuntu 16.04eversão cromo 62. graças aeste exemplode McBarron

Além disso, você pode visualizar no repositório github

#!/bin/bash
echo "Rastreando arquivos flash."
getPidNum=$(lsof | grep Flash | grep excluído | tr -s " " | cut -d " " -f 2)
pidNum=""
para linePidNum em ${getPidNum}; fazer
    if [[ "$pidNum" != "$linePidNum" ]]; então
        pidNum=$linhaPidNum
        echo "O número PID é ${pidNum}"
        getProcNum=$(ls -l /proc/${pidNum}/fd | grep Flash | tr -s " " | cut -d " " -f 9)
        procNum=""
        para lineProcNum em ${getProcNum}; fazer
            if [[ "$procNum" != "$lineProcNum" ]]; então
                procNum=$lineProcNum
                echo "O número do arquivo é ${procNum}"
                echo "Copiando /proc/${pidNum}/fd/${procNum} para '${procNum}.flv'"
                cp /proc/${pidNum}/fd/${procNum} "${procNum}.flv"
            fi
        feito
    fi
feito

informação relacionada