Extrator de CD's para MP3

Publicado por Bryan Garber da Silva 05/07/2008

[ Hits: 5.860 ]

Homepage: bgarber.notapipe.org/blog

Download cd2mp3.sh




Comecei este script quando ainda estava aprendendo Shell-Script, como um teste aos meus conhecimentos.Hoje peguei ele, dei umas melhoradas, corrigi alguns erros, adicionei algumas coisas e aí está ele.

Sei que ainda posso otimizar alguma coisa, mas, por hora, estou satisfeito com ele assim.

Para poder executá-lo, você precisa ter disponíveis os seguintes comandos:

* cdparanoia (provavelmente já tenha instalado, mas é bom verificar)
* id3v2 (edição de id3tag)
* lame (para encodar as mp3).

  



Esconder código-fonte

#-------------------------------------------------------------------#
#++++++++++++ Script para rippar um cd para mp3 ++++++++++++++++++++#
#++++++++++++ Autor: Bryan Garber da Silva +++++++++++++++++++++++++#
#++++++++++++ Data: 28 de Janeiro de 2007 ++++++++++++++++++++++++++#
#-------------------------------------------------------------------#

#/bin/sh

echo "Encoder para rippar um CD para mp3!"
echo "Escrito por Bryan Garber da Silva."
echo "! Este Script utiliza o cdparanoia para extrair     !"
echo "! as faixas, o lame para passar para mp3 e o        !"
echo "! id3tag para salvar informacoes do CD. Antes       !"
echo "! de continuar, certifique-se de que estas tres     !"
echo "! ferramentas estejam instaladas em seu computador. !"
echo ""

echo "Escolha uma opcao:"
echo "1 - Colocar as mp3 em arquivos separados;"
echo "2 - Colocar todas as faixas numa mesma mp3;"
echo "Ou digite qualquer coisa para sair... =P"
echo ""

read opcao
#echo $opcao

lame=lame
id3tag=id3v2

if [ $opcao -eq 1 ]; then
   echo "cdparanoia -B"
   cdparanoia -B

   echo "Faixas do CD copiadas."
   echo ""

   echo "Agora vamos escolher um bitrate para as mp3."
   echo "Bitrate define a qualidade final das musicas."
   echo "Quanto maior este valor, melhor a qualidade,"
   echo "em compensacao, o arquivo final fica maior."
   echo "Em geral, eh usado 128, mas voce pode escolher"
   echo "um desses valores:"
   echo ""

   echo "128 - O mais usado. Qualidade super boa."
   echo "256 - Faz diferenca do 128 somente para ouvidos mais sensiveis para a musica."
   echo "0   - Para usar VBR. O computador otimiza a qualidade da musica para se ter"
   echo "      excelente qualidade quando eh necessario. O meu preferido."
   echo ""

   read qualidade
   #echo $qualidade

   if [ $qualidade -eq 128 ]; then
      for file in `ls *.wav`; do
         echo "Digite o nome do arquivo mp3: "
         read arquivo

         echo "lame $file $arquivo"
         $lame $file "$arquivo"
         echo ""

         echo "Digite o nome da música:"
         read musica
         echo "Numero desta faixa:"
         read track
         echo "Algum comentario (0 para nenhum):"
         read coment

         case $coment in
            0) $id3tag -2 --song="$musica" --track=$track "$arquivo";;
            *) $id3tag -2 --song="$musica" --track=$track --comment="$coment" "$arquivo";;
         esac
      done
   elif [ $qualidade -eq 256 ]; then
      for file in `ls *.wav`; do
         echo "Digite o nome do arquivo mp3: "
         read arquivo

         echo "lame -b 256 $file $arquivo"
         $lame -b 256 $file "$arquivo"
         echo ""

         echo "Digite o nome da música:"
         read musica
         echo "Numero desta faixa:"
         read track
         echo "Algum comentario? (0 para nenhum)"
         read coment

         case $coment in
            0) $id3tag --song="$musica" --track=$track "$arquivo";;
            *) $id3tag --song="$musica" --track=$track --comment="$coment" "$arquivo";;
         esac
      done
   elif [ $qualidade -eq 0 ]; then
      for file in `ls *.wav`; do
         echo "Digite o nome do arquivo mp3: "
         read arquivo

         echo "lame --vbr-new $file $arquivo"
         $lame --vbr-new $file "$arquivo"
         echo ""

         echo "Digite o nome da música:"
         read musica
         echo "Numero desta faixa:"
         read track
         echo "Algum comentario (0 para nenhum):"
         read coment

         case $coment in
            0) $id3tag --song="$musica" --track=$track "$arquivo";;
            *) $id3tag --song="$musica" --track=$track --comment="$coment" "$arquivo";;
         esac
      done
   fi

   echo "Agora vamos especificar algumas informacoes sobre"
   echo "o album rippado."

   echo "Artista/Banda:"
   read artista
   echo "Album:"
   read album
   echo "Número do gênero (execute id3v2 -L para uma lista dos gênenros com seus correspondentes números):"
   read genero
   echo "Ano:"
   read ano
   echo ""

   $id3tag --artist="$artista" --album="$album" --genre=genero --year=$ano *.mp3
elif [ $opcao -eq 2 ]; then
   echo "cdparanoia"
   cdparanoia

   echo "CD copiado."
   echo ""

   echo "Agora vamos escolher um bitrate para as mp3."
   echo "Bitrate define a qualidade final das musicas."
   echo "Quanto maior este valor, melhor a qualidade,"
   echo "em compensacao, o arquivo final fica maior."
   echo "Em geral, eh usado 128, mas voce pode escolher"
   echo "um desses valores:"
   echo ""

   echo "128 - O mais usado. Qualidade super boa."
   echo "256 - Faz diferenca do 128 somente para ouvidos mais sensiveis para a musica."
   echo "0   - Para usar VBR. O computador otimiza a qualidade da musica para se ter"
   echo "      excelente qualidade quando eh necessario. O meu preferido."
   echo ""

   read qualidade
   #echo $qualidade

   if [ $qualidade -eq 128 ]; then
      arquivo=`ls *.wav`
      echo "Digite o nome do arquivo mp3: "
      read mp3_nome

      echo "lame $arquivo $nome"
      $lame --vbr-new $arquivo $mp3_nome
      echo ""

      echo "Um nome para colocar na id3tag:"
      read nome
      echo "Algum comentario (0 para nenhum):"
      read coment

      case $coment in
         0) $id3tag --song="$nome" --track=$track;;
         *) $id3tag --song="$nome" --track=$track --comment="$coment";;
      esac
   elif [ $qualidade -eq 256 ]; then
      arquivo=`ls *.wav`
      echo "Digite o nome do arquivo mp3: "
      read mp3_nome

      echo "lame -b 256 $arquivo $nome"
      $lame --vbr-new $arquivo $mp3_nome
      echo ""

      echo "Um nome para colocar na id3tag:"
      read nome
      echo "Algum comentario? (0 para nenhum)"
      read coment

      case $coment in
         0) $id3tag --song="$nome" --track=$track;;
         *) $id3tag --song="$nome" --track=$track --comment="$coment";;
      esac
   elif [ $qualidade -eq 0 ]; then
      arquivo=`ls *.wav`
      echo "Digite o nome do arquivo mp3: "
      read mp3_nome

      echo "lame --vbr-new $arquivo $mp3_nome"
      $lame --vbr-new $arquivo $mp3_nome
      echo ""

      echo "Um nome para colocar na id3tag:"
      read nome
      echo "Algum comentario (0 para nenhum):"
      read coment

      case $coment in
         0) $id3tag --song="$nome" --track=$track;;
         *) $id3tag --song="$nome" --track=$track --comment="$coment";;
      esac
   fi

   echo "Agora vamos especificar algumas informacoes sobre"
   echo "o album rippado."

   echo "Artista/Banda:"
   read artista
   echo "Album:"
   read album
   echo "Número do gênero (execute id3v2 -L para uma lista dos gênenros com seus correspondentes números):"
   read genero
   echo "Ano:"
   read ano
   echo ""

   $id3tag --artist="$artista" --album="$album" --genre=genero --year=$ano *.mp3
else
   echo "Nada a fazer..."
fi

echo "Quer que eu limpe a bagunça (remover TODOS os .wav)?"
echo "ATENÇÂO: dizendo SIM, eu vou executar um rm -f *.wav, portanto cuidado!"
echo ""
echo "[S/n]:"
read resposta

if [ $resposta = "S" ] || [ $resposta = "s" ]; then
   rm -f *.wav
fi

Scripts recomendados

Monitorando processos, CPU e memória

Wget Interativo (Via shell)

Backup mysqldump usando Shell Script

Script para configuração do jogo 0 A.D

Organizador da saída do objdump


  

Comentários
[1] Comentário enviado por SMarcell em 06/07/2008 - 08:45h

Boa! Mas ainda prefiro "encodar" minhas músicas no formato ogg.

[2] Comentário enviado por bryan em 06/07/2008 - 11:26h

Opa!

É verdade, acho que seria uma boa disponibilizar uma opção para se encodar as músicas para ogg... De repente não sai aí uma atualização para o script?? ^^

Valeu pela dica aí!

[3] Comentário enviado por SMarcell em 06/07/2008 - 15:44h

Seria uma boa hein!

Ah! O próprio lame já disponibiliza opções para editar tag's. Ex.:

# Editando nome do artista/albúm/música/ano:
$ lame --ta Fulano --tl Disco --tt Musica --ty 2008 in.wav out.mp3

[4] Comentário enviado por fernaux em 06/07/2008 - 18:45h

Excelente.
Isso facilita muito.
antes eu fazia tudo manualmente.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts