Cover image for post MP3s taggen mit Köpfchen

MP3s taggen mit Köpfchen

Über die Feiertage ging ich endlich mal ein Projekt an, dass mir seid mittlerweile 8 Jahren auf der Seele brannte: Die liebe MP3-Sammlung mal anständig aufräumen und vor allem taggen. Denn ohne ordentliche Meta-Informationen bringt das beste Mediacenter nichts. Und ich kann sagen, durch jahrelanges, händisches einverleiben von CDs, Online-Kauf von Musik und mehr, sah meine Sammlung aus wie Kraut und Rüben.

Aber wie geht man so ein Projekt an? Alle knapp 20.000 Dateien manuell anfassen? Was muss alles geprüft werden? Wie stellt man konsistente Schreibweise von Künstler- und Titel-Namen sicher? Woher eine halbwegs anständige Markierung des Genre nehmen? Nach langer Suche brachte mir der Tagger Picard des Musicbrainz-Projektes die gewünschte Lösung. Mit kleineren Eingriffen durch EasyTag bin ich damit innerhalb von ca. 3 Arbeitstagen durch mehr als 3/4 meiner Sammlung gebraust und nun ziemlich sicher, anständige ID3-Tags vergeben zu haben.

Musicbrainz

Musicbrainz ist eine Online-Community, die sich zum Ziel gesetzt hat, Releases (aka CDs) zu katalogisieren und passende Meta-Daten bereitzustellen. Sei es um die eigenen CD-Sammlung zu katalogisieren, auf Festplatte zu bannen oder - wie in meinem Fall - bereits bestehende Musik-Sammlungen mit korrekten Meta-Daten zu verzieren.

An Musicbrainz kann jeder angemeldete Benutzer mitarbeiten. Am besten funktioniert das, wenn eine benutzte Desktop-Anwendung bereits mit dem Dienst zusammenarbeitet. In meiner Umgebung ist das fast bei allen Tools der Fall. Der Gnome Sound Juicer fragt beispielsweise nach einlegen einer CD auf Wunsch direkt bei Musicbrainz an, ob das Release bereits geführt wird. Ist dies der Fall, werden die Meta-Daten geladen, ansonsten wird angeboten das Release neu einzutragen.

Der Vorteil von Musicbrainz gegenüber Diensten wie CDDB ist, dass nicht nur Informationen zu Titeln und Künstlern einer CD gespeichert werden, sondern auch digitale Fingerprints der einzelnen Songs und der gesamten CD, sowie Track- und Gesamtlaufzeit und einiges mehr.

Insbesondere die Fingerprints auf Track-Basis sind mehr als wertvoll beim Taggen von existierenden MP3s. Denn man kann nicht nur (per Webservice oder manuell) auf Musicbrainz nach Tracks suchen, sondern einfach den Fingerprint eines Tracks zum Vergleich übergeben und erhält mit ein bisschen Glück die korrekten Meta-Daten für genau diesen Song zurück.

Scheinbar vergleicht Musicbrainzs (zum Glück) nicht bloß einen Hash über die MP3-Datei, sondern über Merkmale der Musik. Wie genau der Dienst hier agiert ist leider nicht bekannt. Das Bereitstellen der entsprechenden Implementierung als OSS wäre wünschenswert, denn mit Hilfe einiger Maschine-Learning-Experten wäre hier noch einiges Potential frei.

Wie auch immer, der Vorteil ist, dass nicht nur ganz spezifische MP3-Dateien zu einem Track erkannt werden können, sondern auch verschiedene Kodierungen des selben Tracks. Denn kodiert man ein Lied auf 2 unterschiedlichen Computern, kommt mit an Sicherheit grenzender Wahrscheinlichkeit nicht exakt die gleiche Datei dabei raus.

Taggen mit Picard

Der MP3-Tagger Picard, der direkt vom Musicbrainz-Projekt entwickelt wird, ist eines der Tools, die direkt mit dem Webservice sprechen können. Trotz der etwas unkonventionellen Bedienung macht es richtiggehend Spaß mit Picard zu taggen, wenn man einmal geschnallt hat, wie's geht.

Picard orientiert sich, wie Musicbrainz, an Alben bzw. Releases. Das heisst, das Tool ist besser darin, komplette CD-Releases zu taggen als einzelne Songs. Aber auch bei einzelnen Liedern hilft der Tagger stark weiter. Die wichtigsten Funktionen zum nachschlagen von Meta-Informationen sind Scan und Lookup. Erstere führt den bereits erwähnten Fingerprint-Scan durch, letztere sucht in der Musicbrainz-Datenbank anhand bestehender Meta-Daten. Daneben kann das sogenannte Clustering insbesondere bei großen Sammlungen von hohem Nutzen sein.

Clustering

Um loszulegen, sollte man Picard zunächst einen Stapel MP3s zu fressen geben. Bei riesigen Sammlungen ist angeraten dabei in Häppchen vorzugehen. Bei mir waren es beispielsweise zunächst das Verzeichnis mit kompletten Alben. Da hier auch die echten Stärken des Programms liegen, kann ich nur zu ähnlicher Vorgehensweise raten. Am besten öffnet man den File-Browser und schiebt den Ordner mit zu taggenden MP3s in das Fenster mit Unmatched Files. Hier tauchen nun nach und nach die Songs auf, sobald Picard die bestehenden Meta-Daten gelesen hat.

Nun sollte man Clustern. Hierbei sammelt Picard alle Lieder ein, deren bestehender ID3-Tag das selbe Album andeutet. Hat man hier bereits (manuell oder von Grund auf) halbwegs ordentliche Informationen stehen, sammelt das Tool alle betroffenen Tracks in einem Ordner mit dem Album-Namen. Tracks ohne Alben-Tag verbleiben einfach als unmatched und können später manuell bearbeitet werden.

Ein Rechts-Klick auf einen Cluster bietet die Funktion Lookup an. Nun versucht Picard ein Release mit dem Namen des Clusters, der entsprechenden Anzahl von Tracks und der ungefähren Gesamtlaufzeit zu finden. Hat man Glück, wird das Tool fündig, lädt die entsprechenden Release-Informationen von Musicbrainz herunter und ordnet die Tracks im Cluster den Tracks im Release zu. Das funktioniert erstaunlich gut.

Danach speichert man das komplette Release und Picard schreibt neue Meta-Informationen in die Files. Hierzu zählen nicht nur der Künstler, der Titel und der Name des Albums, sondern auch die Track-Nummer auf dem Album, sowie die Gesamt-Anzahl und das Erscheinungsdatum. Auch eigene Tags mit der Musicbrainz-ID für den Track, das Album und das Release werden eingefügt, zum späteren einfachen Auffinden.

Findet Picard kein entsprechendes Release, was z.B. bei komischem Release-Namen oder kodierungsbedingter Laufzeit-Abweichung passieren kann, ist lange nichts verloren. Mit Hilfe von Scan oder Lookup lassen sich Releases auch manuell finden. Einmal gefunden, schiebt man den Cluster einfach auf das Release und erhält die entsprechende Zuordnung. Insbesonders bei richtig schlechten Tags (fehlende Track-Nummern, etc.) ist zwar noch etwas händische Politur nötig, aber meistens klappt alles reibungslos.

Scan

Ist Picard nicht in der Lage zu Clustern oder findet zu einem Cluster kein Release, sollte man sich zunächst an einem Scan versuchen. Diese Funktion ruft man am besten per Rechts-Klick auf einen Track auf. Kann Musicbrainz den Song identifizieren, hat man mit sehr hoher Wahrscheinlichkeit eine hervorragende Zuordnung. Bei nicht erkannten Clustern schiebt man nun den Cluster einfach auf das Release und ist glücklich.

Aber insbesondere bei einzelnen Songs ist das scannen hilfreich. Hat man mal einen einzelnen Song von einem Album oder einer Maxi gezogen oder im Internet gekauft, ist oft schleierhaft von welchem Album der Song den wohl stammt? Mit einem Scan findet Musicbrainz das passende Album und gibt einem die korrekten Metadaten.

Für diesen Fall sein angemerkt, dass es evtl. wünschenswert ist später den Album-Tag händisch wieder zu löschen. Wer möchte schon tausende von Alben mit 1-2 Tracks in seiner Musiksammlung haben? Das macht die spätere Suche nicht einfacher. Bei einzelnen Songs gehe ich also hin und lasse Picard suchen, speichere den Track mit neuen Tags und lösche mit EasyTag den Album-Tag wieder. Picard schreibt glücklicherweise auch Custom-Tags mit der Musicbrainz-ID in die Datei, mit der sich die Daten später einfach wieder herstellen lassen, auch wenn der Album-Tag nicht gesetzt ist. Daten wie den Künstler, die Tracknummer im Album und das Erscheinungsdatum sind die für die Sammlung wesentlichen Infos an dieser Stelle.

Ab und an ist beim Sannen aber auch Vorsicht beim Scannen geboten: Wurde ein Song in genau der gleichen Version oder mit nur sehr leichten Abweichungen auf mehreren CDs released, kann Musicbrainz sich auch mal vertun. Allerdings sieht man bei zu-taggenden Alben recht schnell, dass etwas nicht stimmt und bei einzelnen Files ist das wirkliche Release nicht so bedeutend. Hauptsache der Künstler, der Titel stimmen.

Lookup

Kein Cluster oder Cluster-Name nicht gefunden? Ein Scan war nicht erfolgreich? Aufgeben? Noch lange nicht. Im Kontext-Menu eines Songs versteckt sich auch noch die Funktion Lookup. Hierbei sucht Picard auf Musicbrainz nach den bereits vorhandenen Meta-Daten wie Titel, Künstler, Album-Name, Track-Nummer und mehr. Diese Suche ist fuzzy (die Daten müssen nicht 100ig übereinstimmen) und bindet auch Informationen wie die Track-Länge ein.

Damit lässt sich ein weiterer großer Teil der Dateien identifizieren. Insbesondere die ungefähre Track-Länge in Kombination mit Titel und Künstler sind Gold wert. Wird Picard fündig, sollte man die Zuordnung allerdings noch einmal manuell überprüfen. Ab und zu vertut sich das Tool und wählt vielleicht den falschen Track aus. Weitere Hilfe kann hier immer noch ein manueller Lookup verschaffen.

Neben der Funktion Lookup aus dem Kontext-Menu eines Tracks befindet sich neben den angezeigten Meta-Daten nochmal ein Lookup-Knopf. Im Gegensatz zum Kontext-Menu führt Picard hier nicht eine Suche im Hintergrund durch und ordnet automatisch zu, sondern öffnet die Musicbrainz-Website mit den entsprechenden Such-Parametern. Hier kriegt man nun, Suchergebnisse vorausgesetzt, eine Liste mit möglichen Tracks, geordnet nach der Wahrscheinlichkeit, dass es sich um den entsprechenden Song handelt.

Meist findet sich hier der gewünschte Song auf den ersten oder zweiten Blick. Bei einzelnen MP3s von nicht mehr nachvollziehbaren Alben habe ich auch ab und an auf eine 100%-ige Zuordnung verzichtet und darauf geachtet wenigstens den korrekten Künstlernamen und Track-Titel auszuwählen. Die Auswahl funktioniert komfortabel mittels Knopfdruck auf der Website. Picard öffnet einen kleinen lokalen Webserver und wird durch die Aktivierung des Links benachrichtigt, doch bitte das gewählte Release zu öffnen. Nun kann man den Track, oder den Cluster, im Tool entsprechend zuordnen.

Einstellungssache

Picard bietet eine überschaubare aber mächtige Sammlung von Optionen. So lässt sich definieren das gespeicherte Songs umbenannt und/oder in eine andere Ordner-Struktur verschoben werden. Mittels einer einfachen Script-Sprache lassen sich hier sogar komplexe Regeln für die Benennung erzeugen. Beispielsweise ist es möglich, Disc-Nummern in den Dateinamen aufzunehmen, aber nur wenn ein Release auch aus mehreren CDs bestehen.

Ausgetrickst

Manchmal kommt man trotz der vielfältigen Möglichkeiten von Picard nicht so recht weiter. An dieser Stelle ein paar kleine Kniffe, die ich mir angewöhnt habe.

Manuelle Metadaten

Findet Picard partout auf Musicbrainz den gesuchten Track nicht, ist man immer noch nicht verloren. Ein Blick in die bisherigen Meta-Daten hilft oft weiter. Sind überhaupt Informationen in den ID3-Tags eingetragen? Falls ja, sehen diese plausibel aus? Oft finden sich nützliche Informationen zu einem Song im Datei-Namen oder in der Verzeichnisstruktur. Anhand derer kann man in Picard (unten rechts) die Meta-Daten des Tracks anpassen und mit dem entsprechenden Button einen neuen Lookup starten.

Allerdings sollte man nicht voreilig die eingegebenen Informationen speichern wenn man in den Optionen das Verschieben und umbenennen angewählt hat. Zwar tut das Speichern und damit potentiell verbundene Verschieben nicht weh, denn Picard merkt sich wo die Datei gelandet ist und korrigiert später aufgetretene Fehler. Schließt man aber inzwischen das Tool, muss man nachher das Release an verschiedenen Stellen zusammensammeln, was nervig sein kann.

Fehlende Tracks

Picard markiert Alben die komplett vorhanden sind gesondert. Hat man scheinbar nicht alle Tracks eines Albums, muss dies noch nicht der Wahrheit entsprechen. Zum einen gibt es oft vom gleichen Album mehrere verschiedene Releases, zum anderen hat Picard Probleme mit Encoding-Fehlern in Dateinamen.

Man möchte es nicht für möglich halten, aber scheinbar gibt die Musik-Industrie des öfteren Alben mit dem selben Namen in verschiedensten Variationen heraus. Mal fehlen 1-2 Tracks, mal sind welche ausgetauscht, die Reihenfolge ändert sich oder ähnliche Wunderlichkeiten liegen vor. Hat man ein Album erkannt und es fehlen trotzdem Tracks oder lokal vorhandene Tracks sind auf dem Album angeblich nicht vorhanden, sollte man mit einem manuellen Lookup nachsehen ob evtl. andere Releases des Albums vorliegen, die zu den lokalen Daten passen.

Fehlen scheinbar Tracks, lohnt immer auch ein Blick in das Verzeichnis. Viele meiner MP3s stammen noch aus Windoof-Zeiten, mein aktuelles System verwendet UTF8 ans Standard-Kodierung: Meldet Nautilus beim Ansehen des Verzeichnisses invalid encoding für einzelne Dateien, kann Picard damit erst recht nicht umgehen. Manuelles Korrigieren des Dateinamens schafft hier Abhilfe.

Genre via Plugin

Ein Manko an Musicbrainz ist, dass keine Genre-Informationen zu den Tracks vorhanden sind. Gerade im Mediacenter möchte man aber auch mal nach Genre browsen. Hier hilft das Last.FM-Plugin für Picard immerhin ein wenig ab: Mit seiner Hilfe kann man die auf Last.FM am häufigsten vergebenen Tags als Genre einsetzen.

Wichtig ist dabei, die Einstellungen des Plugins möglichst optimal zu setzen. Zu lax eingestellt findet das Plugin auch Tags wie seen live oder hate this. Ein zu enger Schwellwert findet für manche Tracks gar keine Tags.

Ebenfalls problematisch ist, dass ab und zu mehrere Tags mit maximaler Punktzahl existieren. Hier nimmt das Plugin dann all diese Tags zusammen als Genre und erzeugt somit einen ID3v2.4-Genre-Tag der von vielen anderen Tools nicht mehr akzeptiert wird. Version 1.x-Tags kann es leider gar nicht setzen.

Ein wirklich netter Ansatz, leider nicht anständig umgesetzt. Leider ist die Plugin-Schnittstelle von Picard mit Python zu bedienen under der Code des Plugins sieht ziemlich gruselig aus. Aber vielleicht packt es mich ja mal und ich setze mich damit auseinander … Wünschen würde ich mir:

  • Erkennung von Last.FM-Tags die zu ID3v1.x Genres passen

  • Verwaltung eines Mappings

  • Whitelisting von Tags

  • Manuelle Auswahl bei mehreren treffenden Tags

Fazit

Picard vereinfacht das Taggen von großen MP3-Sammlungen massiv. Insbesondere bei Alben und Samplern spielt das Tool seine Stärken aus. Trotz gewöhnungsbedürftiger Oberfläche macht das Taggen, einmal an den Workflow gewöhnt, sogar richtig Spaß. Leider funktioniert das automatische Eintragen vernünftiger Genres nicht wirklich, aber dafür werde ich hoffentlich über kurz oder lang auch eine Lösung finden … Stay tuned!

Comments

Super Sache! In der Tat suche ich sowas schon seit ewigen Zeiten.

Werde mich wohl dann auch mal an meine Sammlung wagen. Danke!

lapistano at 2010-01-04

Picard lässt sich in Ubuntu Karmic sogar einfach über die Repositories (universe) installieren.

Arne at 2010-01-04

Recht hast Du, Arne. Allerdings leider nicht die aktuelle 0.12.1, in der einige nette neue Sachen zu finden sind. Beispielsweise Syntax-Highlighting für die Script-Sprache beim File-Renaming.

Toby at 2010-01-04

Und noch ein Nachtrag: Bei folgendem Ubuntu-PPA gibts MusicBrainz Picard auch in der Version 0.12 für Ubuntu Karmic: https://launchpad.net/~phw/+archive/ppa

Arne at 2010-01-27

MusicBrainz Picard ist echt unfassbar komfortabel zum Taggen der Musiksammlung. Ich habe selten Open-Source-Software mit solch einfachen und bequemen Abläufen gesehen. Ich habe vorhin ein Album auf meinem Rechner gefunden, zu dem es bei MusicBrainz bislang nicht das passende Release gab. MusicBrainz bietet aber auf der Website an, mittels einfachem Knopfdruck Releases von FreeDB zu importieren, Gesagt, getan. Dann noch schnell Port 8000 meines Rechners freigegeben und mittels weiteren Knopfdrucks im Webinterface lässt sich das Release direkt in mein lokales Picard pipen und das Album wurde automatisch mit den korrekten Release-Informationen getaggt. Super!

Arne at 2010-01-27

Danke für diese Anleitung, die BESTE die ich im Internet für PIcard gefunden habe. Es steht mir das richtige taggen von ca. 60.000 Songs bevor, da ist es SEHR hilfreich so einen Workflow gezeigt zu bekommen, das hätt ewig gedauert so ein System selbst zu entwickeln :) Also danke nochmal!

Tobi at 2013-02-02