Houve um tempo (até poucas semanas atrás), em que para salvar um vídeo FLV qualquer da web, bastava ir no diretório /tmp, e copiar o arquivo FlashFEYHS2W34F para o desktop com outro nome, ou ainda assistir o vídeo usando o mplayer enquanto o mesmo era baixado.
Mas as coisas mudaram, a Adobe, visando proteger o direito autoral da indústria, mudou o comportamento do Flash, agora ao começar o stream de vídeo ele deleta o arquivo do HD, assim ele fica inacessível para o sistema e para os outros programas, mas não para o processo que originou o stream. Ou seja, enquanto esse processo estiver rodando o sistema de arquivos não libera o espaço ocupado pelo arquivo deletado, assim ele continua disponível para o processo pai indefinidamente.
Que tal usar essa característica dos sistemas de arquivos do linux a nosso favor ?
Primeiro passo, escolha um vídeo no youtube e dê play, em seguida abra um terminal e digite:
lsof | grep deleted | grep /tmp/Flash
Essa etapa pode demorar alguns minutos, dependendo do tamanho do seu sistema e da quantidade de processos rodando, e no fim ele vai te gerar uma saida semelhante a essa:
chromium- 4103 liquuid 22w REG 8,21 20022146 394236 /tmp/FlashXXfBMa8x (deleted)
Esse comando nos mostra qual o comando e o número do processo que tem um arquivo aberto deletado cujo o nome se inicia com ‘/tmp/Flash’. Se você pegar o nome do arquivo ‘/tmp/FlashXXfBMa8x’ e der um ‘ls’, ele não vai estar lá, por outro lado todos os processo do linux tem seus files decriptors muito bem organizados e guardados no diretório ‘/proc’.
Dessa forma usando o número do processo (segunda coluna) 4103, basta dar o comando:
ls -l /proc/4103/fd/ | grep '/tmp/Flash'
A saída será parecida com essa :
l-wx------ 1 liquuid liquuid 64 2011-03-26 16:31 22 -> /tmp/FlashXXfBMa8x (deleted)
Ou seja, existe um link chamado ’22’ linkado com o conteúdo do arquivo deletado, então basta copiar ‘/proc/4103/fd/22’ para outro diretório, para ter sua cópia do vídeo. Não é simples, mas é uma forma.
EDIT: Esse post não mostra uma solução de como baixar videos do Youtube, mas de qualquer site e qualquer conteúdo.
Massa, funcionou aqui. Para aqueles que usam Firefox tem uma extensão chamada “DownloadHelper” que indentifica os arquivos de vídeo do flash e lhe dá a opção de salvar, você podendo escolher todas as resoluções disponíveis. Bom se usar em conjunto com o acelerador/gerenciador de download “Downthemall”, daí o vídeo vem numa rapidez impressionante.
Excelente dica. Postarei no meu blog como se fosse minha dica, sem apresentar as fontes rsrs sacanagem.
Abraços!
cclive é um ótimo programa que baixa vídeos de diversos sites.
aptitude install youtube-dl
youtube-dl baixa vídeos de outros sites além do youtube ?
baixa não. mas o título do post antes era “youtube”, né?
Era ? 😛
deixou rastros… olha a URL 😉
fffuuuuuuuuuuuuuu!!!!!!!!!!!!!!!
Criei um script baseado em sua ideia:
http://snipt.net/voyeg3r/copy-video-from-tmp-folder
O bom é que por vezes necessito baixar um video e não quero ter que instalar a extensão, salvar o link do video, reiniciar o navegador bla, bla, bla
Por isso criei o scipt, acho que possa ser até melhorado
Bem legal, quando eu tiver um tempinho faço uma contribuição
Com o livestream.com (rtmp) não dá, não é?
Pior que tem quem saiba como encontrar o endereço para baixar via mplayer ou algo assim:
https://bbs.archlinux.org/viewtopic.php?pid=909845
livestream… talvez dê, mas é mais complicado, imagino que o vídeo venha em pacotes menores que duram poucos segundos na memória, daria trabalho juntar… mas vale investigar.