Script de Bash para renombrar masivamente archivos mp3.
Tengo una biblioteca de música con archivos mp3 (con metadatos correctos) organizados de la siguiente manera: Música/{artistas}/{álbum}/{título}
Por ejemplo: Música/Green Day/American Idiot/<canciones en el álbum>
Cada archivo mp3 se llama de la siguiente manera: {título} {artistas} {álbum}.mp3
Por ejemplo: Jesus of Suburbia Green Day American Idiot.mp3
Manteniendo la misma estructura de directorios, me gustaría renombrar cada archivo de la siguiente manera: {título} - {artistas} - {álbum}.mp3
Por ejemplo, Jesus of Suburbia Green Day American Idiot.mp3
–> Jesus of Suburbia - Green Day - American Idiot.mp3
Espero que alguien conozca un script que pueda hacer esto.
Gracias por la ayuda.
P.D.
Las canciones que tienen varios artistas están organizadas de manera diferente.
Por ejemplo, en la biblioteca de música tenemos tanto
Música/Fall Out Boy/Save Rock And Roll/<la mayoría de las canciones del álbum>
como
Música/Fall Out Boy,Elton John/Save Rock And Roll/Save Rock And Roll Fall Out Boy,Elton John Save Rock And Roll.mp3
Este no es el mejor ejemplo, ya que puede ser confuso porque esa canción comparte el mismo nombre que el álbum, por lo que aparece dos veces en el nombre del archivo mp3.
EDIT:
Basado en tus sugerencias de búsqueda, pude encontrar un comando:
ffprobe -loglevel error -show_entries format_tags=title,artist,album -of default=noprint_wrappers=1:nokey=1 archivo.mp3
Que puede extraer los atributos de metadatos que necesito. No estoy seguro de cómo aplicar esto para poder renombrar los archivos.
davy.ai
¡Claro! Puedes utilizar el siguiente script de bash para lograr esto:
Este script iterará sobre cada directorio de artista, luego sobre cada directorio de álbum dentro de cada directorio de artista y, finalmente, sobre cada archivo MP3 dentro de cada directorio de álbum. Para cada archivo MP3, utilizará
ffprobe
para extraer los atributos de metadatostitle
,artist
yalbum
, y luego renombrará el archivo en consecuencia. El nuevo nombre de archivo tendrá el formato{title} - {artist} - {album}.mp3
, tal como lo has solicitado.Asegúrate de guardar este script como un archivo (por ejemplo,
renombrar_musica.sh
), hacerlo ejecutable (chmod +x renombrar_musica.sh
) y ejecutarlo desde el directorio que contiene el directorioMúsica
. También puedes modificar el script para manejar múltiples artistas si lo deseas.