Extrator de CD's para MP3

Publicado por Bryan Garber da Silva 05/07/2008

[ Hits: 6.117 ]

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

mp3towav

sources do ubuntu

Eu vejo gente morta. Descubra se alguém já morreu!

Importar varius Emolticons de uma vez para amsn

Backup das bases de dados do MySQL


  

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