Como fazer download de trailers HD da Apple

Iniciado por Cláudio Novais, 15 de Junho de 2008, 07:15

tópico anterior - próximo tópico

Cláudio Novais

Escrevi este artigo para o meu blog e gostaria de dar a conhecer por achar que vai dar muito jeito a alguns utilizadores deste fórum (:

CitarA Apple tem uma quantidade significativa de trailers de filmes. Esse site contém todos os trailers dos filmes minimamente conhecidos. Dispõe ainda, para a maioria deles, trailers em formato HD (High-Definition, alta definição) que têm uma pequena protecção para não fazer download desse conteúdo. Assim, criei um script que faz download dos trailers em Alta-Definição.

Basicamente essa espécie de protecção é simples: existe um ficheiro-link, que utilizador faz abrir com o programa QuickTime, por exemplo, e esse ficheiro contem o nome do ficheiro de vídeo real. Na realidade, esse ficheiro de vídeo tem uma pequena diferença, um acrescento de caracteres.

Assim, depois uma análise minuciosa, descobri as pequenas diferenças em cada ficheiro e criei este Script. Publicarei, neste artigo, duas versões, uma que pergunta qual a qualidade em HD desejada, 480p ou 720p ou 1020p, e outra que faz download em qualidade 720p. Este segundo, porque a maioria dos PCs têm uma resolução aproximada à de 720p (aproveito para dizer, que se quiserem com outra qualidade podem pedir).

Portanto, o funcionamento do script é básico: executa-se, ele pede o link do filme (pode colocar link directo do filme, ou o link para a página em HD do filme), de seguida pede a qualidade (se for o script para a versão 720p não tem esta opção), começa logo a fazer download e, no final, se eu ficheiro já existia diz erro, caso tenha conseguído copiar o trailer com sucesso, dá uma mensagem de sucesso. De salientar que copia todos os trailers, dessa qualidade escolhida, que se encontram disponíveis para esse determinado filme.

Aspectos a desenvolver
Como ainda está numa versão pouco desenvolvida, não tem algumas pequenas opções básicas que, de seguida, as enumero:

   1. Só avisa que já existe o trailer no final do download;
   2. Não tem uma barra de progresso nativa, portanto, de forma a ver o progresso, tem de abrir o script na consola;
   3. Só faz download de trailers HD, não tendo, portanto, a opção de download de trailers com pouca qualidade;
   4. Não inclui opção de escolha de trailer, faz download de todos os que estiverem disponíveis para esse determinado filme;
   5. Podia, também, ser mais compacto, mas como não há grande processamento, não me importei com a qualidade de programação, mas sim com os resultados práticos.

Como instalar?
A sua instalação é simples, faça download do ficheiro script, abra a consola e dirija-se para a pasta onde guardou o ficheiro. Depois digite o seguinte, de modo ao script ficar executável:
Para a versão completa:
chmod +x appletrailers.sh


Ou para a versão 720p:
chmod +x appletrailers720.sh


Depois disto, o script está pronto a funcionar, bastando fazer o seguinte, na consola, para o executar:
Para a versão completa:
./appletrailers


Ou para a versão 720p:
./appletrailers720


Download do ficheiro
Agora que dei conhecimento das suas funcionalidades e problemas, apresento os links, para download, das duas versões e, a seguir, apresento o conteúdo de cada script.

Versão completa.
Versão 720p.

Código
Versão completa.

    #!/bin/bash
    ####################################################
    #Visite o meu blog: http://ubuntued.blogspot.com/ #
    ####################################################


    nome=$( zenity --entry --text="URL:" --title="Apple Trailers")

    temp=$(echo $nome | grep "/hd/")

    if [[ $temp = "" ]]
    then nome=$(echo $nome"hd/")
    fi

    qualidade=$(zenity --text="Qual a qualidade desejada?" --list --radiolist --column sel --column sel2 1 480 2 720 3 1080)

    if [[ $nome != "" ]]
    then
    wget $nome -O ficheiro.html

    case $qualidade
    in
    480)
    accao=$(cat ficheiro.html | grep 480 | awk -F"','" '{ print $10 }'| awk -F"480" '{ print "wget " $1 "h480" $2 }')
    ;;
    720)
    accao=$(cat ficheiro.html | grep 720 | awk -F"','" '{ print $10 }'| awk -F"720" '{ print "wget " $1 "h720" $2 }')
    ;;
    1080)
    accao=$(cat ficheiro.html | grep 1080 | awk -F"','" '{ print $10 }'| awk -F"1080" '{ print "wget " $1 "h1080" $2 }')
    ;;
    esac
    rm ficheiro.html
    $accao | sh

    accao=$(echo $accao | awk -F"/" '{ print $NF }')
    existe=$(ls | grep "$accao")

    if [[ $existe = $accao ]]
    then zenity --info --text="Ficheiro Sacado"
    else zenity --error --text="Ocorreu algum erro"

    fi

    fi



Versão 720p.

        #!/bin/bash
        ####################################################
        #Visite o meu blog: http://ubuntued.blogspot.com/ #
        ####################################################


        nome=$( zenity --entry --text="URL:" --title="Apple Trailers")

        temp=$(echo $nome | grep "/hd/")

        if [[ $temp = "" ]]
        then nome=$(echo $nome"hd/")
        fi


        if [[ $nome != "" ]]
        then
        wget $nome -O ficheiro.html


        accao=$(cat ficheiro.html | grep 720 | awk -F"','" '{ print $10 }'| awk -F"720" '{ print "wget " $1 "h720" $2 }')

        rm ficheiro.html
        $accao | sh

        accao=$(echo $accao | awk -F"/" '{ print $NF }')
        existe=$(ls | grep "$accao")

        if [[ $existe = $accao ]]
        then zenity --info --text="Ficheiro Sacado"
        else zenity --error --text="Ocorreu algum erro"

        fi

        fi



Por fim, gostaria de avisar que sempre que actualizar este script, apenas actualizarei esta página, assim, se você quiser estar sempre actualizado deixe um comentário e active a opção "Enviar comentários posteriores para o endereço de correio electrónico". Assim, quando eu actualizar, digitarei um comentário informativo da nova actualização e você será avisado (:

link: http://ubuntued.blogspot.com/2008/05/como-fazer-download-de-trailers-hd-da.html

Como podem ver, tanto o artigo como o script ainda estão numa fase inicial. Não conseguirei melhorar nas próximas duas semanas pois tou em época de exames. No entanto, depois, tentarei melhorar os aspectos a desenvolver.

Cláudio Novais

#1
Peço desculpa pelo double post,

mas visto muita gente ter feito download deste script, gostaria de avisar que fiz uma nova actualização:

  #!/bin/bash
    ####################################################
    #Visite o meu blog: http://ubuntued.blogspot.com/ #
    ####################################################


    nome=$( zenity --entry --text="URL:" --title="Apple Trailers")

    temp=$(echo $nome | grep "/hd/")

    if [[ $temp = "" ]]
    then nome=$(echo $nome"hd/")
    fi

    qualidade=$(zenity --text="Qual a qualidade desejada?" --list --radiolist --column sel --column sel2 1 480 2 720 3 1080)

    if [[ $nome != "" ]]
    then
    wget $nome -O ficheiro.html

    case $qualidade
    in
    480)
    accao=$(cat ficheiro.html | grep 480 | awk -F"','" '{ print $10 }'| awk -F"480" '{ print "wget " $1 "h480" $2 }')
    ;;
    720)
    accao=$(cat ficheiro.html | grep 720 | awk -F"','" '{ print $10 }'| awk -F"720" '{ print "wget " $1 "h720" $2 }')
    ;;
    1080)
    accao=$(cat ficheiro.html | grep 1080 | awk -F"','" '{ print $10 }'| awk -F"1080" '{ print "wget " $1 "h1080" $2 }')
    ;;
    esac
    rm ficheiro.html

    accao=$(echo $accao | awk -F"/" '{ print $NF }')
    existe=$(ls | grep "$accao")

    if [[ $existe = $accao ]]
            then zenity --question --text="Você já tem este trailer: \n \t (Nome do ficheiro: $existe ).\n Continuar na mesma?" || exit

        fi

    $accao | sh

    existe=$(ls | grep "$accao")

    if [[ $existe = $accao ]]
    then zenity --info --text="Sucesso, o ficheiro foi guardado com o nome $existe"
    else zenity --error --text="Ocorreu algum erro. Possiveis problemas: Já tinha este ficheiro ou não foi possivel fazer download."

    fi

    fi