Comment puis-je récupérer des métadonnées MP3 en Python?
J'ai utilisé eyeD3 l'autre jour avec beaucoup de succès. J'ai trouvé qu'il pouvait ajouter des illustrations à la balise ID3, ce que les autres modules que j'ai examinés ne pouvaient pas. Vous devrez installer à l'aide de pip ou télécharger le tar et l'exécuter à python setup.py install
partir du dossier source.
Vous trouverez ci-dessous des exemples pertinents tirés du site Web.
Lecture du contenu d'un fichier mp3 contenant des informations de balise v1 ou v2:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
print tag.getAlbum()
print tag.getTitle()
Lisez un fichier mp3 (longueur de la piste, débit, etc.) et accédez à sa balise:
if eyeD3.isMp3File(f):
audioFile = eyeD3.Mp3AudioFile(f)
tag = audioFile.getTag()
Des versions de balises spécifiques peuvent être sélectionnées:
tag.link("/some/file.mp3", eyeD3.ID3_V2)
tag.link("/some/file.mp3", eyeD3.ID3_V1)
tag.link("/some/file.mp3", eyeD3.ID3_ANY_VERSION) # The default.
Ou vous pouvez parcourir les images brutes:
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
for frame in tag.frames:
print frame
Une fois qu'une balise est liée à un fichier, elle peut être modifiée et enregistrée:
tag.setArtist(u"Cro-Mags")
tag.setAlbum(u"Age of Quarrel")
tag.update()
Si le tag lié était v2 et que vous souhaitez l'enregistrer en tant que v1:
tag.update(eyeD3.ID3_V1_1)
Lisez une balise et supprimez-la du fichier:
tag.link("/some/file.mp3")
tag.remove()
tag.update()
Ajouter un nouveau tag:
tag = eyeD3.Tag()
tag.link('/some/file.mp3') # no tag in this file, link returned False
tag.header.setVersion(eyeD3.ID3_V2_3)
tag.setArtist('Fugazi')
tag.update()
import eyed3
(d minuscule).J'ai déjà utilisé mutagen pour modifier les balises dans les fichiers multimédias. L'avantage de mutagen est qu'il peut gérer d'autres formats, tels que mp4, FLAC, etc. J'ai écrit plusieurs scripts avec beaucoup de succès en utilisant cette API.
la source
TIT2
pour mp3,title
pour ogg,\xa9nam
pour mp4,Title
pour WMA etc. - ça craint.Un problème avec
eyed3
est qu'il lanceraNotImplementedError("Unable to write ID3 v2.2")
des fichiers MP3 courants.D'après mon expérience, la
mutagen
classeEasyID3
fonctionne de manière plus fiable. Exemple:Toutes les autres balises peuvent être accédées de cette façon et enregistrées, ce qui servira à la plupart des fins. Pour plus d'informations, consultez le didacticiel Mutagen .
la source
Ce que vous recherchez, c'est le module ID3 . C'est très simple et vous donnera exactement ce dont vous avez besoin. Copiez simplement le fichier ID3.py dans votre répertoire site-packages et vous pourrez faire quelque chose comme ce qui suit:
la source
vérifiez celui-ci:
https://github.com/Ciantic/songdetails
Exemple d'utilisation:
Enregistrer les modifications:
la source
Juste des informations supplémentaires pour vous les gars:
jetez un œil à la section " Trucs MP3 et éditeurs de métadonnées" dans la page de PythonInMusic .
la source
Un exemple simple du livre Plongez au coeur de Python fonctionne bien pour moi, c'est le lien de téléchargement, l'exemple est fileinfo.py. Je ne sais pas si c'est le meilleur, mais cela peut faire le travail de base.
Le livre entier est disponible en ligne ici .
la source
J'ai regardé les réponses ci-dessus et j'ai découvert qu'elles ne sont pas bonnes pour mon projet en raison de problèmes de licence avec GPL.
Et j'ai découvert ceci: PyID3Lib , bien que cette date de sortie de liaison python particulière soit ancienne, elle utilise l' ID3Lib , qui est elle-même à jour.
Il convient de mentionner que les deux sont LGPL et sont prêts à partir.
la source
La méthode la plus simple est les détails de la chanson .
pour lire des données
de même pour modifier
N'oubliez pas d'ajouter u avant le nom jusqu'à ce que vous connaissiez la langue chinoise.
vous pouvez lire et éditer en vrac à l'aide du module python glob
ex.
la source
Après avoir essayé la
pip install
voie simple pour les modules eyeD3, pytaglib et ID3 recommandée ici, j'ai trouvé que cette quatrième option était la seule à fonctionner. Le reste avait des erreurs d'importation avec des dépendances manquantes en C ++ ou quelque chose de magique ou une autre bibliothèque quipip
manquait. Alors allez avec celui-ci pour la lecture de base des balises ID3 (toutes versions):https://pypi.python.org/pypi/tinytag/0.18.0
Liste des attributs possibles que vous pouvez obtenir avec TinyTag:
C'était minuscule et autonome, comme annoncé.
la source
La première réponse qui utilise eyed3 est obsolète, voici donc une version mise à jour de celle-ci.
Lire des balises à partir d'un fichier mp3:
Un exemple du site Web pour modifier les balises:
Un problème que j'ai rencontré en essayant d'utiliser eyed3 pour la première fois était lié à une erreur d'importation de libmagic même s'il était installé. Pour résoudre ce problème, installez le magic-bin whl à partir d' ici
la source
Je suggérerais mp3-tagger . La meilleure chose à ce sujet est qu'il est distribué sous licence MIT et prend en charge tous les attributs requis.
Exemple:
Il prend en charge définir, obtenir, mettre à jour et supprimer les attributs des fichiers mp3.
la source
Cela peut dépendre exactement de ce que vous voulez faire en plus de la lecture des métadonnées. Si c'est simplement le débit / le nom, etc. dont vous avez besoin, et rien d'autre, quelque chose de léger est probablement le meilleur.
Si vous manipulez le mp3 au-delà, PyMedia peut convenir.
Il y en a pas mal, quoi que vous obteniez, assurez-vous et testez-le sur de nombreux exemples de supports. Il existe en particulier quelques versions différentes des balises ID3, alors assurez-vous qu'elles ne sont pas trop obsolètes.
Personnellement, j'ai utilisé cette petite classe MP3Info avec chance. C'est assez vieux cependant.
http://www.omniscia.org/~vivake/python/MP3Info.py
la source
Après quelques recherches initiales, j'ai pensé que les détails des morceaux pourraient convenir à mon cas d'utilisation, mais ils ne gèrent pas les fichiers .m4b. Mutagène le fait. Notez que si certains ont (raisonnablement) contesté la mise en évidence par Mutagen des clés natives de format, qui varient d'un format à l'autre (TIT2 pour mp3, titre pour ogg, \ xa9nam pour mp4, titre pour WMA etc.), mutagen.File ( ) a un (nouveau?) paramètre easy = True qui fournit des balises EasyMP3 / EasyID3, qui ont un ensemble de clés cohérent, quoique limité. Je n'ai fait que des tests limités jusqu'à présent, mais les clés communes, comme l'album, l'artiste, l'albumartiste, le genre, le numéro de piste, le numéro de disc, etc. sont toutes présentes et identiques pour les fichiers .mb4 et .mp3 lorsque vous utilisez easy = True, ce qui en fait très pratique pour mes besoins.
la source
en utilisant https://github.com/nicfit/eyeD3
la source
J'ai utilisé tinytag 1.3.1 car
la source