Quelle est la meilleure façon de récupérer les métadonnées de mp3 en python ? J’ai vu quelques cadres de là-bas, mais je suis pas sûr de savoir qui serait le meilleur à utiliser... Toutes les idées ?
Réponses
Trop de publicités?J'ai utilisé eyeD3 l'autre jour, avec beaucoup de succès. J'ai trouvé qu'il pourrait ajouter des illustrations pour le tag ID3 qui les autres modules, j'ai regardé ne pouvais pas. Vous devrez télécharger le goudron et exécuter python setup.py install
à partir du dossier source.
Des exemples pertinents à partir du site web ci-dessous.
Lire le contenu d'un fichier mp3 contenant v1 ou v2 tag:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
print tag.getAlbum()
print tag.getTitle()
Lecture d'un fichier mp3 (longueur de la piste, le bitrate, etc.) et d'accès: c'est la balise:
if eyeD3.isMp3File(f):
audioFile = eyeD3.Mp3AudioFile(f)
tag = audioFile.getTag()
Balise spécifique versions peuvent être sélectionnés:
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é à un fichier, il peut être modifié et enregistré:
tag.setArtist(u"Cro-Mags")
tag.setAlbum(u"Age of Quarrel")
tag.update()
Si l'étiquette liée en était v2 et que vous souhaitez enregistrer en tant que v1:
tag.update(eyeD3.ID3_V1_1)
Lire dans une balise et le retirer 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()
Ce que vous recherchez, c'est le module ID3 . C'est très simple et vous donnera exactement ce dont vous avez besoin. Il vous suffit de copier le fichier ID3.py dans le répertoire site-packages et d’effectuer les opérations suivantes:
from ID3 import *
try:
id3info = ID3('file.mp3')
print id3info
# Change the tags
id3info['TITLE'] = "Green Eggs and Ham"
id3info['ARTIST'] = "Dr. Seuss"
for k, v in id3info.items():
print k, ":", v
except InvalidTagError, message:
print "Invalid ID3 tag:", message
vérifier celui-ci:
https://github.com/Ciantic/songdetails
Exemple d'utilisation:
>>> import songdetails
>>> song = songdetails.scan("data/song.mp3")
>>> print song.duration
0:03:12
Enregistrer les modifications:
>>> import songdetails
>>> song = songdetails.scan("data/commit.mp3")
>>> song.artist = "Great artist"
>>> song.save()