Manipulation des tags audio, sous Linux#
Au sommaire :
EasyTAG#
EasyTAG est un peu l'équivalent libre du très cool Tag&Rename (propriétaire, Windows). C'est un utilitaire (avec interface) permettant de visualiser et d'éditer des tags pour MP3, MP2, MP4/AAC, FLAC, Ogg Speex, Ogg Opus, Ogg Vorbis, MusePack, Monkey's audio et WavPack.
On l'install via apt
:
sudo apt install easytag
Tag manuel#
J'ai envie de traiter une liste de fichiers audio mal nommés et non tagués (et non dispo sur gnudb.org).
- Déjà le mieux est de renommer manuellement le nom du répertoire contenant l'album (exemple, au format
nom artiste - nom album
) - Puis dans l'explorateur de fichiers, click droit sur le répertoire contenant cet album > Ouvrir avec > EasyTAG.
- On va récupérer le nom de l'artiste et le nom de l'album et l'appliquer comme TAG pour chaque fichier :
- Bien sélectionner tous les fichiers audio (
Ctrl + A
) - Aller dans Affichage > Afficher le scanner
- Onglet "Compléter l'étiquette"
- Choisir le masque approprié (dans notre exemple :
%a - %b/
) - Cliquer sur le bouton "Scanner les fichiers"
- Cliquer sur le bouton "Fermer"
- Bien sélectionner tous les fichiers audio (
- On a maintenant le nom de l'artiste et le nom de l'album comme TAG de chaque fichier
- On peut déjà sauvegarder ça
- en sélectionnant tous les fichiers audio (
Ctrl + A
) - puis en cliquant sur l'icône représentant une disquette dans la barre d'outils, ou via Fichier > Enregistrer les fichiers, ou via
Ctrl + S
.
- en sélectionnant tous les fichiers audio (
- Puis on y va pour ajouter le titre de chaque morceau, on sélectionne le premier fichier audio, et on modifie son Titre dans la fenêtre de droite (contenant les champs Titre, Artiste, Album, etc).
- Une fois le titre tapé, on passe au morceau suivant (via la touche
⇟ page suivante
du clavier) - Une fois tous les titres des morceaux saisis, on pense à sauvegarder toutes les modifs (
Ctrl + A
puisCtrl + S
)
Bon, il ne reste plus qu'à utiliser les tags sauvegardés dans nos fichiers audio, pour les renommer proprement:
- Bien sélectionner tous les fichiers audio (
Ctrl + A
) - Aller dans Affichage > Afficher le scanner
- Onglet "Renommer le fichier"
- Choisir le masque approprié (exemple :
%n - %t
pour avoir simplement le numéro et le nom de la piste) - Cliquer sur le bouton improprement intitulé "Scanner les fichiers"
- Cliquer sur le bouton "Fermer"
- Puis, important, sauvegarder (
Ctrl + S
) pour renommer les fichiers
Voilou
En ligne de commande#
Supprimer les tags de fichiers OGG#
Parce que parfois il faut savoir faire table rase.
Dans le répertoire contenant les fichiers :
# on affiche les tags en place
find -maxdepth 1 -type f -iname "*.ogg" -exec vorbiscomment -l {} \; ;
# on supprime les tags en place
find -maxdepth 1 -type f -iname "*.ogg" -exec vorbiscomment -w -c /dev/null {} \; ;
# on affiche à nouveau, pour vérifier qu'ils ne soient plus là
find -maxdepth 1 -type f -iname "*.ogg" -exec vorbiscomment -l {} \; ;
Supprimer les tags de fichiers MP3#
Prérequis : installer id3v2
sudo apt install id3v2
Dans le répertoire contenant les fichiers :
# on affiche les tags en place
find -maxdepth 1 -type f -iname "*.mp3" -exec id3v2 -l {} \; ;
# on supprime les tags en place
find -maxdepth 1 -type f -iname "*.mp3" -exec id3v2 --delete-all {} \; ;
# on affiche à nouveau, pour vérifier qu'ils ne soient plus là
find -maxdepth 1 -type f -iname "*.mp3" -exec id3v2 -l {} \; ;
Renommer des fichiers audio proprement tagués#
On peut passer par l'excellent ExifTool.
Et d'ailleurs, voici comment installer ExifTool :
- on le télécharge
- on extrait l'archive
- on le compile et on l'install :
perl Makefile.PL
make -j$(nproc) test
sudo make -j$(nproc) install
Une fois ExifTool
en place, on peut donc renommer des fichiers audio proprement tagués :
for i in *.mp3 ; do \
input_basename="${i##*/}"; \
input_extension="${input_basename##*.}"; \
track="$(exiftool -p '$Track' "$i")"; \
track="$(echo $track | sed 's@^[^0-9]*\([0-9]\+\).*@\1@')"; \
artistTitle="$(exiftool -p '$Artist - $Title' "$i")"; \
newFilename="$track - $artistTitle.$input_extension"; \
echo $newFilename; \
mv --backup "$i" "$newFilename"; \
done
Dans cet exemple, je cherche à renommer des fichiers MP3, libre à vous de renommer ce que vous voulez.
Et idem, mais sur une seule ligne :
for i in *.mp3 ; do input_basename="${i##*/}"; input_extension="${input_basename##*.}"; track="$(exiftool -p '$Track' "$i")"; track="$(echo $track | sed 's@^[^0-9]*\([0-9]\+\).*@\1@')"; artistTitle="$(exiftool -p '$Artist - $Title' "$i")"; newFilename="$track - $artistTitle.$input_extension"; echo $newFilename; mv --backup "$i" "$newFilename"; done
Credits#
La photo montrant un canapé défoncé devant des murs couverts de tags est intitulée "Tags" et à été prise par Kevin Dooley. Elle est sous license CC BY 2.0.