Como salvar um vídeo do (seu site de videos favorito) no novo flash plugin ?

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.

13 comentários

  1. Alessandro disse:

    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.

  2. Arllen Victor disse:

    Excelente dica. Postarei no meu blog como se fosse minha dica, sem apresentar as fontes rsrs sacanagem.
    Abraços!

  3. Lucas disse:

    cclive é um ótimo programa que baixa vídeos de diversos sites.

  4. efeefe disse:

    aptitude install youtube-dl

  5. liquuid disse:

    youtube-dl baixa vídeos de outros sites além do youtube ?

  6. efeefe disse:

    baixa não. mas o título do post antes era “youtube”, né?

  7. efeefe disse:

    deixou rastros… olha a URL 😉

  8. liquuid disse:

    fffuuuuuuuuuuuuuu!!!!!!!!!!!!!!!

  9. 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

  10. liquuid disse:

    Bem legal, quando eu tiver um tempinho faço uma contribuição

  11. the dsc disse:

    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

  12. liquuid disse:

    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.

Os comentários estão encerrados.