Script recomprension MP3

  • Mi caso: se me ha jodido el ipod y voy a pasar de tener 15gb a 2gb, mmmm, tengo la música casi toda a 192..320 de bitrate, aja, ¡hay que bajar ese bitrate!.
  • Mi caso II: pillo una canción con bastantes bajos, agudos y muy variada vamos, … , la oigo a 320, 192, 128….no consigo adivinar cual es cual, OK, soy sordo, gran ventaja! :D.
  • Conclusión: convertir toda mi musica a 128 con lo que un album de 100mb me pasará a 40mb, reduzco en un 60%, no esta mal.
  • Herramientas a usar: lame. Me leo el man, aja, veo que puedo convertir fácilmente, pero hay un gran problema, llamado Id3, los cuales los quiero mantener, son la base de cualquier biblioteca musical decente. OK, me haré un script para leerlos y pasárselo como parámetros al lame, el cual me convertirá las canciones (e insertará la información del id3 que le paso).

    No problem, perl al poder, script pequeño pero útil. En definitiva es un simple script para recomprimir mp3 sin perder los id3 de éstos, aqui esta.

    • BUG_1: Algunos nombres de ficheros con caracteres que podríamos denominar como raros falla, mayormente porque en el script se “escapan” dichos caracteres, y posiblemente alguno me habré dejado. Una solución para esto es simplemente renombrar los ficheros problemáticos.
    • BUG_2: cuando el id3 del genero no está conforme al estandar Id3V1 (es decir una lista determinada de generos, lame –genre-list para verlos), peta también, mejor porque así he detectado incoherencias en los id3 y los he arreglado.

    Por lo demás va a la perfección :). 50gb de musica convertida en 20 :D. Y desde entonces toda la música que me estoy bajando la convierto con este script :).

    En ambos casos, estos “bugs” (o features?), por supuesto, no hacen que se borren los mp3′s ni nada. Simplemente saldrá un lista de los comandos que han fallado (y posiblemente verás en dicho comando un parámetro del estilo –tg “__un_género__” el cual no es un género válido id3 o algún símbolo raro en el nombre del fichero, puedes copypastear dicho comando y sabrás exactamente el porqué falla).

    Las instrucciones para usarlo son simples. Hay que tener en cuenta que el script trabajará con los mp3 únicamente del directorio actual. Esto lo he hecho así porque suelo tener los mp3 divididos por discos (como es lo normal creo yo) y gracias a otro script primero detecto qué discos tienen bitrate mayor que 128, y luego voy carpeta por carpeta usando este. Proceso que se podría automatizar, cierto; pero me gusta así.

    $ wget http://www.bicosyes.com/code/recompress.txt
    $ chmod +x recompress.txt
    $ sudo mv recompress.txt /usr/bin/recompress # o a algún sitio en tu path
    $ sudo aptitude install lame libterm-progressbar-perl libmp3-info-perl
    $ cd MUSICA/directorio_con_mp3
    $ recompress

6 Thoughts on “Script recomprension MP3

  1. Pingback: Bicosyes - since evermore » Script bitrateFind

  2. inmolatus on 10 March, 2008 at 20:24 said:

    Muy buen tutorial, ¿como le pasas los parámetros al script? He de convertir también unos cuantos gigas a 128kbps ya que si no el iPod me marca las canciones a 0.
    Gracias

  3. Le das permisos de ejecución (chmod x NOMBRE_DEl_FICHERO) y lo ejecutas sin más, estando en el directorio de música con los mp3′s. Te saldrá una barrita indicando lo que queda.

    Algo así como:

    $ wget http://www.bicosyes.com/code/recompress.txt
    $ chmod x recompress.txt
    $ sudo mv recompress.txt /usr/bin/recompress # o a algún sitio en tu path
    $ sudo aptitude install lame libterm-progressbar-perl libmp3-info-perl
    $ cd MUSICA/directorio_con_mp3
    $ recompress

  4. inmolatus on 10 March, 2008 at 23:38 said:

    Gracias, he notado algún problema con los ficheros que usan id3tag v2 y utilizan un género que no es uno de los compatibles con v1, de todas formas mi colega Amarok me lo ha puesto al día en un momento XD.
    Estaba pensando en ponerme a estudiar algún lenguaje y estaba dudando entre perl o python, ¿conoceis algún buen tutorial y programa para empezar a meterle un poco de caña a alguno de estos lenguajes?
    Gracias por todo

  5. Te aconsejo python antes que perl. Sobretodo para empezar, pues éste es mucho más sencillo (y más potente). Si ya sabes programar, ruby es también muy bueno (aunque si no es el caso, también es una mala opción como primer lenguaje).

    De python tienes multitud de manuales (pon en google “aprender python” y veras). Aunque por recomendar un link, dive into python está bien y lo tienes incluso traducido.

    Si te decides por ruby, hay una web que tienes incluso un manual de 15minutos interactivo en la propia web que está realmente chulo. Y también un “tutorial” con viñetas de comic que es bastante divertido (tan locos!). Aunque si es tu primer lenguaje, mejor python, ruby es quizá más potente, pero también algo más complejo (en mi opinión).

  6. vilorto on 26 May, 2010 at 10:57 said:

    Estoy usando tu script y parece funcionar correctamente, hace tiempo que buscaba algo así. Mil gracias.

Post Navigation