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.