Image d'un lecteur mp3 où il y a marqué "Artiste Inconnu" "Bonne Zik point mp3". Il y a également noté "Mutagène", c'est le nom d'un élément cité dans l'article.

Modifier les tags d’un Fichier MP3 avec Python

L’autre jour, alors que je m’amusais à mettre des fichiers MP3 sur une clef USB pour les utiliser dans ma voiture. Je me suis rendu compte d’une chose. Quand les musiques sont lues sur un lecteur mp3, ça s’affiche mal ! On ne voit que le nom du fichier avec un vieux « .mp3 » à la fin, c’est caca !

En regardant de plus près, je vois que les informations comme le titre, l’album ou l’artiste se trouvent dans les métadonnées !

Une fois remonté sur ma chaise, je regarde comment changer ces données. Il se trouve que mon ordinateur (Debian 13/XFCE) possédait un lecteur avec la fonctionnalité pour modifier ces fameux tags. Ce logiciel est « Quod Libet« , je ne m’attarderai pas plus sur ce logiciel.

Pour un seul fichier, c’est amusant, mais pour tout un album, ça devient un peu long… C’est là qu’intervient « Mutagen« .

Mutagen ?

Mutagen est la bibliothèque qui permet de manipuler de nombreux fichiers audio ou vidéo. Dans cet article, on va se pencher sur le format MP3, mais c’est sensiblement la même chose pour un ficher Ogg, Wav ou encore MP4.

Installation

Si vous êtes des êtres subversifs et que vous pensez valoir mieux, que tout le monde, vous devez sûrement avoir un autre système d’exploitation, il vous faudra donc installer via le paquet PyPi.

Si au lieu de ça, vous connaissez parfaitement votre valeur et que vous n’avez pas besoin de fioritures pour exister, vous devez probablement utiliser Debian et vous avez probablement déjà Quod Libet d’installé ! Dans ce cas, mutagen est déjà sur votre système.

Utilisation

Pour ajouter ou modifier le titre et le nom de l’artiste, il vous suffira de créer un objet EasyID3 et indiqué le contenu des tags :

Python
from mutagen.easyid3 import EasyID3

fichier_audio = EasyID3("./technologic.mp3")
fichier_audio["artist"] = "Daft Punk"
fichier_audio["title"] = "Technologic"

Bien-sûr il existe de nombreux autres tags comme l’album, l’année de sortie, le numéro de la piste et j’en passe…

Et voilà ! Maintenant, vous savez faire ! Bon courage !

Pour les plus curieux, ou tout simplement celles et ceux qui ont la flemme de le coder, j’ai fait un petit programme permettant de le faire sans trop se prendre la tête, je vous en parle juste en dessous.


Un programme déjà tout fait !

Présentation rapide

Le programme a pour but d’ajouter simplement les informations de base pour les fichier MP3. Il ajoute le titre, l’artiste, l’album, le numéro de piste et le genre de musique. Le programme n’est que sur un seul fichier, ce qui facilite son utilisation.

Installation

Prérequis

Avant l’installation, il vous faudra avoir Python (version supérieure à 3.7) et les mêmes prérequis que ceux cités plus haut.

Le programme

Pour installer le programme, rendez-vous sur le projet GitLab, télécharger le fichier mp3-md-wrt, rendez-le exécutable, puis, placez-le et renommez-le à votre guise, je ne suis pas particulièrement doué pour trouver des noms accrocheurs pour mes applications ! Maintenant, il ne reste plus qu’à l’utiliser.

Utilisation

L’utilisation se déroule en 3 étapes, la préparation des métadonnées, la préparation des fichiers MP3 et l’utilisation du programme.

metadata.json

Le fichier des métadonnées à utiliser doit être au format JSON et doit ressembler à ceci :

metadata.json
{
    "artist": "Daft Punk",
    "album" : "Human After All",
    "genre" : "Electro-Rock"
}

Préparer les fichiers MP3 (optionnels)

Pour cela, il suffira de renommer les fichiers en indiquant le numéro de piste à l’avant du titre de la musique.

Exemple :

« Technologic.mp3 » devient « 9_Technologic.mp3 »1

A noter que cette étape est optionnelle, si le fichier ne comporte pas de numéro, le programme utilisera le nom complet comme numéro de piste. Il va falloir remédier à ça tient…

Utiliser ENFIN le programme

Après ces deux étapes quelque peu fastidieuses, il est tant de lancer le programme !

Bash
mp3-md-wrt -f ./metadata.json /dossier/music

Le paramètre -f sert à préciser le chemin vers le fichier metadata.json et /dossier/music, et bien vers le fichier ou le dossier dans lequel il y a des fichiers au format MP3.

À noter que s’il y a des fichiers dans le dossier de destination différent du format MP3, ils seront ignorés.

Bonus: Nettoyer les fichiers après un téléchargement

Il existe un paramètre supplémentaire pour nettoyer le nom des fichiers après avoir téléchargé des fichiers avec yt-dlp (par exemple).

Ce paramètre va supprimer l’identifiant de la musique entre crochets qui se trouve dans le nom du fichier.

Exemple

« ma_musique [abcde123-].mp3 » deviendra « ma_musique.mp3 »

Pratique non ? Voici comment faire :

Bash
mp3-md-wrt -c /dossier/a/nettoyer

Le mot de la fin

Super ! Maintenant, vous savez utiliser soit Mutagen, soit mon programme. Dans les deux cas, vous n’avez plus d’excuses pour avoir des fichiers MP3 avec « Artiste inconnu » marqué en gros sur le lecteur !

Si vous êtes arrivé à lire jusqu’ici, sachez que vous vous êtes concentré aussi longtemps qu’une personne qui se brosse les dents. Bravo !

Si cet article vous à plus, partagez-le ou mettez-le en favori, au cas où. Si vous souhaitez ajouter des options, améliorer le programme ou tout simplement réécrire la documentation dans la langue de votre choix, libre à vous ! Le projet GitLab est ici.

Ciao bisous bye bye !

  1. « Technologic » est la 9 piste de l’album, voici la source. ↩︎