shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Script para youtube-dl e ffmpeg


From: Valtoir
Subject: Re: [shell-script] Script para youtube-dl e ffmpeg
Date: Fri, 23 Dec 2011 10:17:09 -0200

Retificando o e-mail anterior: que tal criar uma função só pra parte
"baixar, converter, etc", e passar a essa função a url, seja a partir de um
parâmetro ou da leitura do arquivo?

Quanto à validação de erros, coloque no início do script, uma vez só ;-)

T+

Valtoir

Em 23 de dezembro de 2011 10:07, Valtoir <address@hidden> escreveu:

> Aqui o script funcionou, mas tenho algumas dicas:
>
> - ao invés de esperar que a opção --file seja $1, use getopts. Com isso
> podes eliminar também as variáveis ENT e FILE
> - antes de enviar as mensagens de erro, rode um "setterm -store", e após a
> exibição, "setterm -default". Não é educado deixar sujeira na tela do
> usuário.
> - utilize a opção "-e" do youtube-dl para salvar o arquivo final com o
> mesmo nome do título do vídeo
>
> Olhando agora, rapidamente, acho que a primeira dica (getopts) serve
> inclusive pra evitar o uso de funções. Dá pra diminuir bastante o tamanho
> do script.
>
> T+
>
> Valtoir
>
> Em 23 de dezembro de 2011 08:29, Rodolpho Costa Stach 
> <address@hidden>escreveu:
>
>  **
>>
>>
>> Bom dia à todos, estou tentando escrever um script para usar o
>> youtube-dl (que baixa vídeos do youtube para o PC) e o ffmpeg (que uso
>> para extrair uma mp3 do vídeo) mas ao tentar usar o while para ler um
>> arquivo linha a linha ele le apenas uma linha e sai... rsrsr provável
>> ser uma coisa bem simples que deixei passar mas já cheguei num ponto que
>> leio leio leio e não vejo...
>>
>> ## Script para baixar MP3 do youtube!
>> # Autor: Rodolpho
>> ## Variáveis
>> # YOU é o caminho para o executável do youtube-dl
>> # FF é o caminho para o executável do ffmpeg
>> # ENT é a primeira entrada do usuário
>> # FILE é a segunda entrada do usuário (soh funciona quando tem a opcao
>> --file
>> ## Funções
>> # baixalinha() é para quando o usuário informa a URL junto ao programa
>> # baixafile() é para ler um arquivo de texto simples com os links
>> ##
>>
>> #!/bin/bash
>> YOU=/usr/bin/youtube-dl
>> FF="/usr/bin/ffmpeg -i"
>> ENT=$1
>> FILE=$2
>>
>> baixalinha(){
>> #Testa se não foi informado algum parâmetro para download
>> if [ -z "$ENT" ]; then
>> #exibe mensagem de erro
>> echo -e "\e[41;37;1m Erro:"
>> echo -e "\e[40;37;1mPreciso da URL do vídeo para a baixar"
>> echo -e "\e[40;37mUse $0 URL"
>> echo "Ex:"
>> echo -e "\e[40;37m $0 http://www.youtube.com/watch?v=J3WZ2b7V_7c";
>> echo -e "\e[40;37m ou"
>> echo -e "\e[40;37m $0 --file lista.txt"
>> echo " "
>> #exibe mensagem de erro e sai
>> exit
>> else
>> echo Baixando o vídeo
>> $YOU $ENT > /tmp/logYOU.log
>> VIDEO=`cat /tmp/logYOU.log|grep Destination|cut -d: -f2`
>> echo convertendo para MP3 com o nome $VIDEO.mp3
>> $FF $VIDEO $VIDEO.mp3
>> echo "Apagando o arquivo de vídeo"
>> rm $VIDEO
>> fi
>> }
>>
>> baixafile(){
>>
>> if [ -z "$FILE" ]; then
>> #exibe mensagem de erro
>> echo -e "\e[41;37;1m Erro:"
>> echo -e "\e[40;37;1mPreciso da URL do vídeo para a baixar"
>> echo -e "\e[40;37mUse $0 URL"
>> echo "Ex:"
>> echo -e "\e[40;37m $0 --file lista.txt"
>> echo " "
>> #exibe mensagem de erro e sai
>> exit
>> else
>> while read link
>> do
>> echo Baixando o vídeo de $link da lista $FILE
>> $YOU $link > /tmp/logYOU.log
>> VIDEO=`cat /tmp/logYOU.log|grep Destination|cut -d: -f2`
>> echo convertendo para MP3 com o nome $VIDEO.mp3 o video $link
>> $FF $VIDEO $VIDEO.mp3 2> .erroFF
>>
>> echo "Apagando o arquivo de vídeo $VIDEO de $link"
>> rm $VIDEO
>>
>> done < $FILE
>> fi
>> }
>>
>> case $1 in
>> --file) baixafile;;
>> *) baixalinha
>> esac
>>
>>  
>>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]