J'ai plusieurs chansons MP3 dans un répertoire et je veux les trier par artiste de sorte que chaque nom d'artiste soit un répertoire contenant la musique de cet artiste.
J'ai plusieurs chansons MP3 dans un répertoire et je veux les trier par artiste de sorte que chaque nom d'artiste soit un répertoire contenant la musique de cet artiste.
Réponses:
Cela suppose que vos tags mp3 sont au format id3v2. id3v1 formate les choses un peu différemment. Je recommande quelque chose comme mediainfo
ça pour ça. Cet exemple utiliseid3v2
pour le fichier en * .mp3; faire IFS = $ ':' artist = "$ (id3v2 -l" $ {fichier} "| grep" TPE1 "| awk '{print $ 2}')" # Votre nom d'artiste est maintenant stocké dans $ artist. # Cet exemple crée simplement un répertoire d'artistes et y déplace le fichier. # Terrible façon d’organiser de la musique, mais c’est une démonstration! [[! -d "$ {artiste}"]] && mkdir -p "$ {artiste}" mv -f "$ {fichier}" "$ {artiste}" terminé
Une vraie solution consiste à utiliser quelque chose comme MusicBrainz Picard.
Je ne suis pas sûr du système d'exploitation sur lequel vous vous trouvez, mais puisque votre question a été étiquetée en tant que programmation Unix, je supposerai que vous êtes sur un * ix. Donc, si vous pouvez installer id3tool, vous pouvez exécuter la ligne de commande BASH suivante:
find . -name "*.mp3" | while read n; do
dir=`id3tool "$n" | grep Artist | cut -f 3 | sed 's/\s*$//'`;
mkdir -p "$dir";
mv "$n" "$dir"/"$n" ;
done
EXPLICATION:
Ce petit script parcourt chacun de vos fichiers mp3, extrait le nom de l'artiste à l'aide de id3tool
et l'enregistre dans la variable $dir
. Il créera ensuite un répertoire avec le nom de l'artiste (sauf s'il existe déjà) et déplacera le fichier dans ce répertoire.
Vous pouvez également le faire sous forme d’interface graphique en utilisant des lecteurs de musique tels que amarok qui offrent cette fonctionnalité (ou du moins, il l’était auparavant). Il existe également différents éditeurs id3, il suffit de chercher dans votre source logicielle préférée, dont certains au moins devraient également pouvoir le faire.
Je le ferais en Python, avec l'outil indiqué dans cette réponse sur Stack Overflow , eyeD3 .