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: Rodolpho Costa Stach
Subject: Re: [shell-script] Script para youtube-dl e ffmpeg
Date: Sat, 24 Dec 2011 12:40:47 -0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111105 Thunderbird/8.0

Valtoir obrigado eu não conhecia o getopts, estou olhando como usá-lo e depois posto como ficou, sobre criar só uma função eu não sei ainda como passo argumentos para a função, tentei pesquisar mas não entendi ainda como funciona só testando em um código que eu conheça para entender.

Pergunta: Estou interessado em comprar o livro do Aurélio Marinho sobre Shell é um bom investimento?

Em 23-12-2011 10:17, Valtoir escreveu:
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]



------------------------------------

---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos





reply via email to

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