Script para ripar CDs de audio e codificar as faixas para MP3

Publicado por Luís Fred 28/03/2007

[ Hits: 5.715 ]

Download riparcd




Este é um script básico que extrai  todo o conteudo de um CD de áudio e em seguida converte as faixas para o formato MP3.

O script usa o 'dialog' para se comunicar com o usuário através de caixas de texto, tornando-o mais interativo e interessante.

NOTA: Você vai precisas do "lame" e do "cdparanoia" instalados na máquina

  



Esconder código-fonte

#!/bin/bash
#---------------------------------------------------------------#
# Script para ripar CDs de audio convertendo os arquivos em MP3 #
# Por Luís Fred <fred.alphax@gmail.com>                         #
#---------------------------------------------------------------#

M1="Este script ripa um CD de audio inteiro convertendo as faixas para o formato MP3. Para que este script funcione corretamente, é necessário ter instalados na sua máquina o 'cdparanoia' e o 'lame'. O cdparanoia já vem por padrão acompanhando a maioria das distribuições Línux. Já no caso do lame, isto é menos frequente. Portanto você terá que verificar se estes componentes estão instalados na sua máquina e caso não estejam, você deverá instala-los antes de rodar o script. Se você é usuario da famosa ferramenta 'apt-get', use apt-get install cdparanoia lame. Isto irá instalar os compentes na sua máquina ou então acesse www.sourceforge.net, neste site você irá encontrar o cdparanoia e o lame"
dialog --title "Ripar CD" --msgbox "$M1" 0 0 

principal()
{
dialog  --title "Ripar CD" \
--backtitle "É importante que você visualiza as informações do CD antes de ripa-lo." \
--radiolist "O que você deseja fazer?" 0 0 0 \
"1" "Visualizar informações do CD" off \
"2" "Esta opção lhe permite ripar todo o CD de audio" on  2> /tmp/check.tmp
retval=$?

if [ $retval = 1 ];
then
exit 0

fi
choice=$(cat /tmp/check.tmp)
  rm -f /tmp/check.tmp
  if [ "$choice" = "1" ]; then
  cdparanoia -Q 2> /tmp/infocd.tmp
  tail -f -n 40 /tmp/infocd.tmp > out & dialog --title "Ripar CD" --textbox out 0 0
  rm -f out cdparanoia
  killall tail
  principal

fi
#---------------------------------------------------#
if [ "$choice" = "2" ]; then
clear

#Ripa as faixas de audio separando-as em arquivos diferentes
cdparanoia -s -B 

dialog --title "Ripar CD" --inputbox "Informe o nome do artista ou banda(use o caractere UNDERLINE para separar as palavras, docontrário o script irá gerar um ERRO) referente a esta faixa de áudio. Isto é importante, pois ajuda a identificar a origem da faixa de audio. Você pode fornecer para a faixa, informações como TITULO, ARTISTA, ANO DE LANÇAMENTO, etc:" 0 0 2> /tmp/info.tmp
INFO=$(cat /tmp/info.tmp)
rm -f /tmp/info.tmp
clear
echo "<< +CONVERTENDO FAIXAS DE AUDIO+ >>"
for INFILE in *.wav
do
# converte as faixas ripadas
lame -m s -a -q 2 --ta $INFO  $INFILE $INFILE.mp3

dialog --title "Ripar CD" --inputbox "Entre com o novo nome para a faixa $INFILE.mp3. Especifique um nome diferente para cada faixa" 0 0 2> \
/tmp/novo_nome.tmp
NOVO_NOME=$(cat /tmp/novo_nome.tmp)
rm -f /tmp/novo_nome.tmp
mv $INFILE.mp3 $NOVO_NOME.mp3

done

fi
#########################################################################

echo "<< +APAGANDO ARQUIVOS WAV...+ >>"
rm -rf  *.wav

##########################################################################
dialog --title "Ripar CD" --backtitle "Seu CD foi ripado com sucesso. Você pode usar agora seu tocador de mp3 favorito para executar as faixas sonoras. " \
--radiolist "\nDeseja executar as faixas de audio agora para checar a qualidade do audio? Caso deseje tocar as faixas, use CTRL + C para avançar\n" 0 0 0 \
"1" "Tocar agora" on \
"2" "Tocar depois" off 2> /tmp/tocarfaixas.tmp

opc=$(cat /tmp/tocarfaixas.tmp)
rm -f /tmp/tocarfaixas.tmp

if [ "$opc" = "1" ]; then

clear
mpg123 -db *.mp3

# executa a função ripar_outrocd()
ripar_outrocd

fi


if [ "$opc" = "2" ]; then
ripar_outrocd
fi
#-------------------------------------#
if [ "$choice" = "3" ]; then

exit 0

fi

}


ripar_outrocd(){
dialog --title "Ripar Cd" \
--yesno "Deseja ripar outro CD?" 0 0 
retval=$?
if [ $retval = 0 ]; 
then

principal

fi

if [ $retval = 1 ]; 
then
exit 0
fi

}

principal
exit 0

Scripts recomendados

ScriptLibreOffice - Baixa e instala o LibreOffice pt_BR mais recente no Ubuntu, Debian e Linux Mint

Testador de portas usando nmap

Multiconversor (Octal para binário, decimal para hexadecimal, etc)

Scrip para criação de arquivos em série

Fax Control


  

Comentários
[1] Comentário enviado por pibarnas em 29/03/2007 - 02:46h

Ainda não testei, mas parece do Ca****lho!!!! VALEU MESMO!! E continue a fazer scripts, que vc tem o maior talento!

[2] Comentário enviado por robsonpc em 24/09/2008 - 01:16h

Muito bom esse script..mas se habitue a nao utilizar acentos neles.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts