#!/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
"

###############| REGRAS |#################

#
# 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################NMMMMMMMMMMMMMMMMMj       $FP
$BP                                         $FV         :jj2PX9XKNNNN#NMMMMMMMMMMMMMMMMM#NNNN#X9XXLj27           $FP
$BP                                                                                                           $FP
$BP                                                                                                           $FP
$FCP"

#
# FAZENDO O DOWNLOAD DOS VIDEOS
#
Download
}

Logo

#
# FIM!
#
