Peczenyj's Blog

Just Another /Perl|Ruby|C++|Java|Python|JavaScript|Flash|Bash/ Hacker

Youtube Downloader 2.0

A versão 1.0 foi até pro Dicas-L. Graças a esta exposição percebi que o script é muito útil para quem não tem um plug-in flash (que preste) no browser. É o caso do pessoal que usa Beos, por exemplo.

Reduzi o número de linhas, usei a expansão de variáveis do bash para algumas substituições simples e agora vc pode informar o nome do arquivo que vc quer salvar, senão será usado aquele nada pratico id. A extensão é flv que pode ser visualizado pelo mplayer ou convertido pra mpeg.

$ ./script.sh endereço_do_video nome_do_video

Eis o código
#!/bin/bash
# youtube downloader
test -n "${1}" || { echo -e "Missing url or id!\nUsage: ${0} <url | id> [filename]" ; exit 1; }

set - ${1/*=} ${2:-${1/*=}} "http://www.youtube.com/watch?v=${1/*=}" 'video_id=.+&t=[^\"&]+'

wget -O "${2%.flv}.flv" "${3%/*}/get_video?$(wget -qO - "${3}" | grep -oE "${4}" | sed '1q')"


Tentei usar o curl e não consegui. Quem quiser tentar, faça um curl -I na url final e veja os cabeçalhos – não sei como ir para o ‘Location’. O wget faz isso numa boa, mas seria interessante ter a opção com o curl.

O que seria mais interessante? Baixar uma lista de videos? Baixar os X primeiros videos que aparecem em uma dada pesquisa?