Di algo inteligente o van a pensar que eres un tonto! - Homero Simpson

Perl y mp3info

Bajé unos mp3 de rolas de los 90′s, pero sucede que no traía ninguna informacion en los metadatos, pero la información necesaria estaba en el nombre del archivo, así que me puse a hacer un script que sacara los datos del nombre de archivo para imprimir la linea necesaria para ejecutar en shell y actualizar de golpe todos los archivos, pero resulta que varias canciones tenían una comilla, y cositas por el estilo, por lo cual había que escapar los caracteres correctamente para poder ejecutar el dichoso “script”, y pues lo lógico, si estas usando perl, seguro debe haber un módulo para actualizar la información de mp3, y pues lo busqué y simplemente sustituyendo una linea por otra ya pude actualizar los tags de los mp3, pa poder subirlos al aipo y que tengan sentido en el astuto sistema de organización del mismo :)

Seguro hay una mejor manera de “sacar la información” de la cadena (nombre del archivo), pero no la conozco :P , así que esto funciona, y bien.

#!/usr/bin/perluse MP3::Info;                                                                                                # Declare the subroutines                                                          sub trim($);      

open(TT, "tt.txt");                          while( $record = <TT> ) {                                                                         chop $record;                                                                     @cols = split(/-/, $record);                                                                          $n = trim($cols[0]);                        $a = trim($cols[1]);                        @tmp = split(/\(/,$cols[2]);                $t = trim($tmp[0]);                         @tmp2 = split(/\)/,$tmp[1]);                $y = $tmp2[0];                                                                                               set_mp3tag($record, $t, $a, "Top 100 90's", $y, "GaRaGeD", "Pop",$n);                                                                                                               }                                                                                  close(TT);                                                                                             exit 0;                                               

# Perl trim function to remove whitespace from the start and end of the string                                                      sub trim($){       my $string = shift;       $string =~ s/^\s+//;       $string =~ s/\s+$//;       return $string;}# Files in tt.txt are in this format# 001 - Nirvana - Smells Like Teen Spirit (1992).mp3
  • Share/Bookmark
Filed under:id3v1, mp3, perl

Leave a Reply

Los enlaces en los comentarios pueden encontrarse libres de nofollow.