Wie kann ich MP3-Metadaten in Python abrufen?
Ich habe neulich eyeD3 mit viel Erfolg benutzt. Ich fand heraus, dass es dem ID3-Tag Grafiken hinzufügen konnte, die die anderen Module, die ich mir ansah, nicht konnten. Sie müssen mit pip installieren oder den tar herunterladen und python setup.py install
aus dem Quellordner ausführen .
Relevante Beispiele von der Website sind unten.
Lesen des Inhalts einer MP3-Datei mit Informationen zu v1- oder v2-Tags:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
print tag.getAlbum()
print tag.getTitle()
Lesen Sie eine MP3-Datei (Titellänge, Bitrate usw.) und greifen Sie auf das Tag zu:
if eyeD3.isMp3File(f):
audioFile = eyeD3.Mp3AudioFile(f)
tag = audioFile.getTag()
Bestimmte Tag-Versionen können ausgewählt werden:
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.
Oder Sie können über die Rohrahmen iterieren:
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
for frame in tag.frames:
print frame
Sobald ein Tag mit einer Datei verknüpft ist, kann es geändert und gespeichert werden:
tag.setArtist(u"Cro-Mags")
tag.setAlbum(u"Age of Quarrel")
tag.update()
Wenn das verknüpfte Tag v2 war und Sie es als v1 speichern möchten:
tag.update(eyeD3.ID3_V1_1)
Lesen Sie ein Tag ein und entfernen Sie es aus der Datei:
tag.link("/some/file.mp3")
tag.remove()
tag.update()
Fügen Sie ein neues Tag hinzu:
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
(Kleinbuchstaben d).Ich habe zuvor Mutagen verwendet , um Tags in Mediendateien zu bearbeiten. Das Schöne an Mutagen ist, dass es andere Formate wie mp4, FLAC usw. verarbeiten kann. Ich habe mehrere Skripte mit viel Erfolg mit dieser API geschrieben.
quelle
TIT2
für mp3,title
für ogg,\xa9nam
für mp4,Title
für WMA etc. - das ist scheiße.Ein Problem mit
eyed3
ist, dass esNotImplementedError("Unable to write ID3 v2.2")
für gängige MP3-Dateien werfen wird .Nach meiner Erfahrung arbeitet die
mutagen
KlasseEasyID3
zuverlässiger. Beispiel:Auf alle anderen Tags kann auf diese Weise zugegriffen und gespeichert werden, was den meisten Zwecken dient. Weitere Informationen finden Sie im Mutagen Tutorial .
quelle
Was Sie suchen, ist das ID3- Modul. Es ist sehr einfach und gibt Ihnen genau das, was Sie brauchen. Kopieren Sie einfach die ID3.py-Datei in Ihr Site-Packages-Verzeichnis, und Sie können Folgendes tun:
quelle
Schau dir das an:
https://github.com/Ciantic/songdetails
Anwendungsbeispiel:
Änderungen speichern:
quelle
Nur zusätzliche Informationen an euch:
Schauen Sie sich den Abschnitt "MP3- Inhalte und Metadaten-Editoren" auf der Seite von PythonInMusic an .
quelle
Ein einfaches Beispiel aus dem Buch Dive Into Python funktioniert für mich in Ordnung. Dies ist der Download-Link. Das Beispiel ist fileinfo.py. Ich weiß nicht, ob es das Beste ist, aber es kann den grundlegenden Job machen.
Das gesamte Buch ist hier online verfügbar .
quelle
Ich habe mir die obigen Antworten angesehen und festgestellt, dass sie aufgrund von Lizenzproblemen mit der GPL nicht für mein Projekt geeignet sind.
Und ich habe Folgendes herausgefunden: PyID3Lib verwendet zwar das Veröffentlichungsdatum der Python-Bindung , verwendet jedoch die ID3Lib , die selbst auf dem neuesten Stand ist.
Bemerkenswert ist, dass beide LGPL sind und gut zu gehen sind.
quelle
Die einfachste Methode sind Songdetails .
zum Lesen von Daten
ähnlich zum bearbeiten
Vergessen Sie nicht , hinzuzufügen u vor Namen , bis Sie chinesische Sprache kennen.
Sie können mit dem Python Glob-Modul in großen Mengen lesen und bearbeiten
Ex.
quelle
Nachdem
pip install
ich die hier empfohlene einfache Route für eyeD3-, pytaglib- und ID3-Module ausprobiert hatte, stellte ich fest, dass diese vierte Option die einzige war, die funktionierte. Der Rest hatte Importfehler mit fehlenden Abhängigkeiten in C ++ oder etwas Magischem oder einer anderen Bibliothek, diepip
fehlte. Gehen Sie also mit diesem zum grundlegenden Lesen von ID3-Tags (alle Versionen):https://pypi.python.org/pypi/tinytag/0.18.0
Liste möglicher Attribute, die Sie mit TinyTag erhalten können:
Es war winzig und in sich geschlossen, wie angekündigt.
quelle
Die erste Antwort, die eyed3 verwendet, ist veraltet. Hier ist eine aktualisierte Version davon.
Tags aus einer MP3-Datei lesen:
Ein Beispiel von der Website zum Ändern von Tags:
Ein Problem, auf das ich beim ersten Versuch mit eyed3 gestoßen bin, hatte mit einem Importfehler von libmagic zu tun, obwohl es installiert war. Um dies zu beheben, installieren Sie den Magic-Bin Whl von hier aus
quelle
Ich würde mp3-tagger vorschlagen . Das Beste daran ist, dass es unter MIT-Lizenz vertrieben wird und alle erforderlichen Attribute unterstützt.
Beispiel:
Es unterstützt das Festlegen, Abrufen, Aktualisieren und Löschen von Attributen von MP3-Dateien.
quelle
Es kann genau davon abhängen, was Sie zusätzlich zum Lesen der Metadaten tun möchten. Wenn Sie nur die Bitrate / den Namen usw. benötigen und sonst nichts, ist wahrscheinlich etwas Leichtes am besten.
Wenn Sie die MP3-Datei manipulieren, ist PyMedia möglicherweise geeignet.
Es gibt ziemlich viele, was auch immer Sie bekommen, stellen Sie sicher und testen Sie es auf vielen Beispielmedien. Insbesondere gibt es einige verschiedene Versionen von ID3-Tags. Stellen Sie daher sicher, dass diese nicht zu veraltet sind.
Persönlich habe ich diese kleine MP3Info-Klasse mit etwas Glück benutzt. Es ist allerdings ziemlich alt.
http://www.omniscia.org/~vivake/python/MP3Info.py
quelle
Nach anfänglichen Recherchen dachte ich, dass Songdetails zu meinem Anwendungsfall passen könnten, aber es werden keine .m4b-Dateien verarbeitet. Mutagen tut es. Beachten Sie, dass einige (vernünftigerweise) Probleme mit Mutagens Auftauchen von format-nativen Schlüsseln haben, die jedoch von Format zu Format variieren (TIT2 für mp3, Titel für ogg, \ xa9nam für mp4, Titel für WMA usw.), mutagen.File ( ) hat einen (neuen?) easy = True-Parameter, der EasyMP3 / EasyID3-Tags bereitstellt, die einen konsistenten, wenn auch begrenzten Schlüsselsatz haben. Bisher habe ich nur begrenzte Tests durchgeführt, aber die allgemeinen Tasten wie Album, Künstler, Albumartist, Genre, Tracknummer, Discnumber usw. sind alle vorhanden und für .mb4- und .mp3-Dateien identisch, wenn easy = True verwendet wird sehr praktisch für meine Zwecke.
quelle
Verwenden von https://github.com/nicfit/eyeD3
quelle
Ich habe tinytag 1.3.1 verwendet, weil
quelle