Script para fazer download de quantos vídeos você quiser do YouTube
Por Hugo Leonardo de Freitas
Data de Publicação: 10 de Março de 2007
Segue abaixo um script bem detalhado e simples para fazer download de vídeos do YouTube. Ele se encarrega de definir o nome do vídeo e converter no melhor formato, .mpg ou .avi.
Crie um arquivo baixa_videos_youtube.sh, cole o texto abaixo e certifique-se de estar instalada a ferramenta ffmpeg. Depois disso, precisamos apenas copiar o endereço dos vídeos que ele se encarrega do resto.
Para instalar a ferramenta de conversão, basta usar a ferramenta de instalação automática, dependendo de sua distribuição.
Ex.:
apt-get install ffmpeg
yum install ffmpeg
Para executar o script, digite:
# sh baixa_videos_youtube.sh
Estou aberto para dúvidas, criticas e sugestões.
#!/bin/bash
# _
# *v* by
# /(_)\ Hugo Leonardo de Freitas
# ^ ^ Linux Counter: #341228
# hugolf@gmail.com
#
#
# SCRIPT CRIADO PARA FAZER DOWNLOAD DE VIDEOS DO YOUTUBE.
# PODEMOS FAZER INCLUSIVE DOWNLOADS DE VIDEOS EM MASSA, BASTA SABER O ENDERECO.
#
# OS VIDEOS SAO BAIXADOS DIRETAMENTE E CONVERTIDOS NO FORMATO MAIS ADEQUADO AO VIDEO.
# O NOME DO VIDEO E INSERIDO AUTOMATICAMENTE, AUTOMATIZANDO O DOWNLOADS DE VARIOS VIDEOS.
#
# DEPENDENCIA: SERA NECESSARIO INSTALAR O FFMPEG PARA CONVERTER OS VIDEOS PARA MPG OU AVI.
# ------------ PARA INSTALAR PODERA USAR O APT-GET OU YUM, DEPENDE DA DISTRIBUICAO.
# Exemplo:
# yum install ffmpeg
# apt-get install ffmpeg
#
#
# ENDERECOS PARA DOWNLOAD DOS VIDEOS DO YOUTUBE
# CASO QUEIRA FAZER DOWNLOAD DE VARIOS VIDEOS,
# COLOQUE-OS UM DEBAIXO DO OUTRO.
#
videos="
http://www.youtube.com/watch?v=xl6K8O9B2aQ
http://www.youtube.com/watch?v=r5WHW-Q8g1Q
http://www.youtube.com/watch?v=JnujkXNwci8
http://www.youtube.com/watch?v=Kd7qqVGWQkA
http://www.youtube.com/watch?v=Lj76Zk8P01o
http://www.youtube.com/watch?v=0icNoVHvaWM
http://www.youtube.com/watch?v=hQJ4o_XhnMg
http://www.youtube.com/watch?v=rfE2Ufce_eI
http://www.youtube.com/watch?v=-rXHPB612-s
"
< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note#| REGRAS |" HREF="#textnote#| REGRAS |">< SUP>#| REGRAS |< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>###
#
# CORES ( NAO USADAS, APENAS COMO EXEMPLO )
#
PRETO='\e[0;30m'
VERMELHO='\e[0;31m'
VERDE='\e[0;32m'
AMARELO='\e[0;33m'
AZUL='\e[0;34m'
MAGENTA='\e[0;35m'
AZULCLARO='\e[0;36m'
CINZA='\e[0;37m'
#
# CORES PERSONALISADAS
#
BP='\e[47;30m'
FP='\e[40;30m'
FV='\e[47;31m'
FCP='\e[40;37m'
#
# FUNCAO RESPONSAVEL POR FAZER O DOWNLOAD DOS VIDEOS
#
Download () {
#
# CASO NAO EXISTA SERA CRIADA UMA PASTA VIDEOS PARA ARMAZENAR OS VIDEOS BAIXADOS
#
mkdir -p videos
#
# INICIANDO A PESQUISA DO VIDEO
#
for video in $videos; do
#
# COLETANDO INFORMACOES
#
wget -O infovideo.tmp "$video"
#
# EXTRAINDO O CODIGO DO VIDEO
#
codigo=$( cat infovideo.tmp | grep player2.swf\?video_id= \
| cut -f2 -d ? | cut -c10- | cut -f1 -d , | cut -f1 -d '"' )
#
# EXTRAINDO O NOME DO VIDEO
#
nome=$( cat infovideo.tmp | grep 'meta name="title" content="' \
| cut -f3 -d = | cut -c2- | cut -f1 -d '"' )
rm -f infovideo.tmp ; cd videos
#
# FAZENDO O DOWNLOAD DO VIDEO
#
wget -c -O $nome.flv "http://www.youtube.com/get_video?video_id=$codigo"
#
# CONVERTENDO O VIDEO DE .FLV PARA .MPG
#
/usr/bin/ffmpeg -i $nome.flv $nome.mpg
#
# CASO NAO CONSEGUIR CODIFICAR O ARQUIVO NO FORMATO MPG
# TENTA A CONVERSAO PARA O FORMATO AVI
#
tamanho=$( du -sh $nome.mpg | cut -f1 )
#
if [ $tamanho == 0 ]; then
rm -f $nome.mpg
/usr/bin/ffmpeg -i $nome.flv $nome.avi
#
tamanho=$( du -sh $nome.avi | cut -f1 )
#
if [ $tamanho == 0 ]; then
rm -f $nome.avi
else
rm -f $nome.flv
fi
else
rm -f $nome.flv
fi
cd ..
done
}
#
# FUNCAO PARA CONFECCIONAR A LOGO DO YOUTUBE
#
Logo () {
#
# LIMPANDO A TELA
#
clear
#
# IMPRIMINDO NA TELA A LOGO DO YOUTUBE
#
echo -e "
$BP $FP
$BP $FP
$BP $FV ZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMNNMMNNNMNMMMMMMMMM2 $FP
$BP $FV NMNK9PPPPPPPP55PPPPPPPPPPPPPPPP5ZL2jjii;::,. KMX $FP
$BP $FV KNX@MMMMMMMMMMMMN9PPPPPPPPPPXMMMM#X99P5ZZL222jjji7i;. .MX $FP
$BP MMMM 7MMMM $FV .MX99 9XPPPPPPPPPPK: PXP99999P5ZLL222jjji; 5M $FP
$BP MMMR MMMM $FV 2NP9R : i X95PPPPP5PPP#5 HRP5PPP99X9P55ZL2222j:jM $FP
$BP HMMM MMM, $FV X@PPR#MMM MMMMMMMMK9RNMM#X#5 MMMMM#XPPPXHMMMMMK9LL7;M: $FP
$BP MMM7 MMM# jMMMM9 MMM9 ZMMM $FV MRPPPPP9M MPPRP HXK .H#5 Mj 7MXPKMK. .9MHPZ7NX $FP
$BP MMM MMM iMMMMMMMMX MMM@ 9MMM $FV M9PPPPP9M MPP@5 MR# M#5 7HRM @H95@K $FP
$BP KMMMMMX MMM: MMM MMM9 2MMM $FV MPPPPPP9M MPPHX MKM M#Z MMM, MHi MMM; MPPRM $FP
$BP MMNMM MMM, MMM MMMX LMMM $FV MPPPPPP9M MPPHX MRM M#Z #@M, MM, :MMM9 MPPXM $FP
$BP 2M#M; MMM7 MMM MMMX LMMM $FV MPP5PPPXM MPP@X MKN M#Z HKM. MM: MPPXM $FP
$BP ZMMM MMMi MMM MMMR ZMMM $FV M9P9PPPXM MPP#X MKM MNZ #@M. MM, jji25Z:MPP@M $FP
$BP ZMMM MMM; MMM MMMX 2MMM $FV MX5P5PP9M MPPHX MKM MNZ #KM. MM. MMMMMM9NPPHX $FP
$BP ZMMM MMM MMM MMM7 .MMM $FV #H99999RM MP9#X MMM. MML MMM: MM, MMM M99M2 $FP
$BP ZMMM RMMM;jMMMM MMMM7MMMMM $FV PM99999XM M99@X L, MML 7i :M
57 ;N99M $FP
$BP MMMML 5MMMMMMZ NMMMMPMMMM $FV ;MX9999XH M99RN 5 NH. : N@XN@ 5MK9XM $FP
$BP $FV M#XXXXR#MMMM#XXXNMMMMMMMMMMHKMMMMMMMMMMNXXR#MMMMMMMMKXRMM $FP
$BP $FV jMMKXXXXXXXXXXXXXXRRRXXXXXXXXXXXXXXRRRRXXXXXXXRRKRXXR#MM $FP
$BP $FV #MMMMMMMMMMMMMMMMN< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>NMMMMMMMMMMMMMMMMMj $FP
$BP $FV :jj2PX9XKNNNN#NMMMMMMMMMMMMMMMMM#NNNN#X9XXLj27 $FP
$BP $FP
$BP $FP
$FCP"
#
# FAZENDO O DOWNLOAD DOS VIDEOS
#
Download
}
Logo
#
# FIM!
#
Veja a relação completa dos artigos da coluna Cantinho do Shell
Para se manter atualizado sobre as novidades desta coluna, consulte sempre o newsfeed RSS
Para saber mais sobre RSS, leia o artigo O Padrão RSS - A luz no fim do túnel.
Opinião dos Leitores
31 Mai 2007, 10:38
31 Mai 2007, 09:44
Depois de usar o script por algum tempo no meu PC, eu comecei a ter problemas, talvez por conta de alguma atualização do wget. Daí, eu precisei alterar a linha:
wget -c -O $nome.flv "http://www.youtube.com/get_video?video_id=$codigo"
para:
wget -c -O "$nome.flv" "http://www.youtube.com/get_video?video_id=$codigo"
(Veja as aspas em "$nome.flv")
Abraços



