terça-feira, 17 de maio de 2011

Como salvar um vídeo do Youtube no novo flash plugin:


Não vou reinventar a roda só pra poder assinar como criado por mim.

Eu achei esse conteúdo após pesquisar e perguntar bastante e como foi o conteúdo mais completo que consegui encontrar e não vou plagiá-lo mudando algumas palavras pra dizer que fui eu que criei. Se eu fosse escrever algo assim ficaria muito próximo a isso. Vou só adicionar alguns comentários em vermelho. 
Esse conteúdo vem do link: 

http://linux.liquuid.net/content/como-salvar-um-v%C3%ADdeo-do-youtube-no-novo-flash-plugin


Como salvar um vídeo do Youtube 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
* Nesse caso podemos perceber que os arquivos em flash ainda são criados na pasta /tmp e com o prefixo "Flash". O comando lsof mostra os arquivos abertos no sistema, com "grep deleted" selecionamos os que possuem o status de "deletados" e com "grep /tmp/Flash" selecionamos aqueles que foram criados no diretório "/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.


Nenhum comentário: