
Eu sei que no Windows, o Internet Explorer armazena .flv
arquivos 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 .flv
arquivo.
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/Default
pasta. É 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
ps
funcionará 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.
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