Ton-Leiter

Musiksammlungen verwalten mit Beets

Musikliebhaber, die ihre Musik vorwiegend auf der Festplatte vorhalten, kennen das Problem: Schnell geht die Übersicht über die Sammlung verloren, das Finden einzelner Tracks artet zum Geduldsspiel aus. Abhilfe schafft das kommandozeilenorientierte Programm Beets [1]: Es indiziert rekursiv ganze Verzeichnisbäume, schreibt die Treffer in eine Datenbank und sortiert die Audiodateien an anderer Stelle in einer übersichtlichen Ordnerstruktur. Als Dreingabe korrigiert oder ergänzt es dabei noch fehlerhafte oder fehlende ID3-Tags.

Installation

Bei Beets handelt es sich um ein Python-Programm, das Sie beispielsweise unter Ubuntu direkt über Pip [2] einrichten, den Python Package Installer. Als Grundlage für Pip und Beets benötigen Sie vorab noch die Bibliotheken python-dev, python-setuptools und python-pip. Das Installieren der Musikverwaltung übernimmt im Anschluss der Befehl sudo pip install beets.

Nutzen Sie eine Distribution, für die Pip nicht zur Verfügung steht, laden Sie den Beets-Tarball von der Projektseite herunter [3], entpacken ihn und richten das Programm mit dem Kommando sudo python setup.py install im System ein. Der Installer lädt dabei automatisch einige weitere benötigte Bibliotheken, etwa python-musicbrainz2 aus dem Internet nach.

Am Anfang war die Datenbank

Bevor Sie richtig loslegen, gilt es Beets zu konfigurieren. Dazu legen Sie, falls nicht vorhanden, die Konfigurationsdatei .beetsconfig in Ihrem Heimatverzeichnis an. Darin legen Sie fest, welche Pfade das Programm zukünftig verwendet. Im Beispiel aus Listing 1 verwendet das Programm das Verzeichnis ~/Musikdatenbank/beets.blb zum Speichern der Datenbank und ~/Musik für die Audiodateien selbst.

Listing 1

[beets]
directory: ~/Musik
library: ~/Musikdatenbank/beets.blb

Beachten Sie, dass Beets ähnlich wie iTunes sämtliche von ihm verwalteten Stücke in das gewählte Musikverzeichnis kopiert, sodass die Dateien anschließend doppelt auf der Festplatte liegen. In der Konfigurationsdatei geben Sie daher nicht die Quelle ihrer bestehenden Sammlung, sondern das Ziel für die Beets-Bibliothek an. Das hat auch einen guten Grund, denn wenn beim Import der Dateien etwas schief geht, bleiben die Originale unangetastet. Möchten Sie lieber Platz sparen, ergänzen Sie die Konfigurationsdatei um die Anweisung import_copy: no. In diesem Fall belässt Beets die Dateien am ursprünglichen Platz.

Der erste Import

Nach Abschluss der Vorarbeiten beginnen Sie mit dem Import der ersten Lieder. Der Aufruf beet import -A ~/Desktop/alben/pink_floyd_pulse/ (beachten Sie, dass der Befehl beet ohne abschließendes s heißt) liest das im angegebenen Verzeichnis enthaltene Album in die Datenbank ein und kopiert die Lieder in das in der Konfigurationsdatei festgelegte Musikverzeichnis.

Da Beets die Verzeichnisse rekursiv abarbeitet, können Sie auch einfach das übergeordnete Verzeichnis benennen, um alle darin enthaltenen Musikdateien zu indizieren. Ein beet import -A ~/Desktop/alben/ lädt so nicht nur das Pink-Floyd-Meisterwerk in die Datenbank, sondern berücksichtigt auch die Beatles-Sammlung und die Diskografie des London Symphony Orchestra im zweiten und dritten Unterordner.

Der im Beispiel verwendete Schalter -A sorgt dafür, dass bestehende Metadaten (MP3-Tags wie Titel oder Album) bestehen bleiben. Soll Beets stattdessen automatisch versuchen, die passenden ID3-Tags über das Internet zu ermitteln, dann lassen Sie den Parameter einfach weg und rufen nur beet import ~/Desktop/alben/ auf. Im Test funktionierte das allerdings nur sehr bedingt: Im Fall der losen Beatles-Sammlung schlug das so genannte Autotagging ganz fehl, da kein korrektes Album zugeordnet war. Bei Pink Floyds "Pulse" zeigte Beets zahlreiche Alternativvorschläge – auf die einfache Idee, dass es sich bei den Aufnahme um CD 1 und CD 2 handelte, kam es jedoch nicht, obwohl diese Angaben sogar in den Metadaten der Audiodateien standen. Immerhin lädt Beets zusätzlich zu den Tags auch die jeweiligen CD-Cover herunter, sofern vorhanden,.

Zwar kopiert das Programm bei einem erneuten Import der Musiksammlung die bereits eingefügten Lieder nicht noch einmal, legt sie aber ein zweites Mal in der Datenbank an.

Wer sucht, …

Einen ersten Überblick über das vorhandene Material liefert die Statistikfunktion, die Sie mit beet stats abrufen (Abbildung 1). Die im Test verwendete Zusammenstellung sorgt immerhin schon für fast zehn Stunden Musikgenuss in 124 Liedern aus 93 verschiedenen Alben.

Abbildung 1

Abbildung 1: Die Statistikfunktion von Beets gibt Auskunft über den Umfang der Musiksammlung.

Neben diesen generellen Informationen beherrscht Beets natürlich auch weitaus mächtigere Abfragen, die Sie mit dem Befehl beet list abrufen. So liefert beet list love alle Einträge, in deren Metadaten die Zeichenfolge Love vorkommt (Abbildung 2). Die Schreibweise spielt dabei übrigens keine Rolle, das heißt, LOVE wird genauso gefunden wie LoVe oder love.

Abbildung 2

Abbildung 2: Die detailliertere List-Abfrage zeigt alle Songtitel, in deren Meta-Informationen das Suchwort vorkommt.

Die Auflistung erfolgt dabei immer nach dem Schema Interpret/Album/Titel. Das Programm erlaubt auch die Abfrage mehrerer Suchbegriffe. So zeigt beet list love radar beispielsweise alle Einträge, die sowohl die Zeichenfolgen love als auch radar enthalten, etwa den Golden-Earring-Klassiker "Radar Love".

Zur genaueren Suche fügen Sie dem Suchtext ein Schlüsselwort hinzu. Mittels beet list album:heavy rotation erfahren Sie, welche Lieder des Anastacia-Albums Ihre Sammlung enthält (Abbildung 3).

Abbildung 3

Abbildung 3: Beets ermöglicht, durch Angabe von Keywords nach ganz bestimmten Interpreten oder Alben zu fahnden.

… der findet

Bei Alben, die aus mehreren CDs bestehen, schränken Sie die Suche mit der Angabe der CD (beispielsweise disc 1 oder disc 2) ein. Alles, was nach dem Schlüsselwort album: steht, durchsucht die Namen der vorhandenen Alben. Dabei müssen Sie keinen zusammenhängenden Text angeben: Es genügt, wenn die Zeichen an einer beliebigen Stelle vorkommen. Die Abfrage auf Lieder von CD 2 können Sie daher auch auf beet list album:pulse 2 verkürzen, die Ausgabe bleibt dieselbe. Theoretisch genügt auch ein beet list album:pu 2, sofern die Datenbank kein anderes Album mit der Buchstabenfolge pu enthält.

Kommt das Schlüsselwort zum Schluss, lässt es sich auch mit einer generischen Abfrage kombinieren. So liefert beet list the album:pulse alle Lieder aus dem Pulse-Album von Pink Floyd, (CD 1 und 2), welche die Zeichenfolge the enthalten. Eine Suche nach zwei zusammenhängenden Begriffen erlaubt das Programm jedoch nicht. Geben Sie in the als Suchbegriff ein, so liefert Beets nicht etwa alle Lieder mit dieser Zeichenfolge, sondern alle Titel, die sowohl die Zeichenketten in als auch the enthalten. Dafür erlaubt das Tool mit dem Schalter -a die explizite Suche nach Alben, ohne die enthaltenen Titel anzuzeigen. So zeigt beispielsweise beet list -a heavy rotation nur das Anastacia-Album an, ohne die einzelnen Lieder aufzulisten.

Das Programm stellt zudem weitere Schlüsselworte bereit. So liefert beet list year:2010 alle Titel aus dem Jahr 2010, beet list title:wall dagegen sämtliche Stücke mit wall im Liedtitel. Auch diese Keywords erlauben eine Kombination untereinander. Ein Beispiel für eine komplexe Abfrage: beet list live album:pulse title:wall year:1995. Diese Befehlszeile listet alle Stücke aus Alben mit pulse, welche die Zeichenfolge wall enthalten und aus dem Jahr 1995 stammen, wobei zudem ein beliebiges Feld den Begriff live enthalten muss. Musikliebhaber erkennen es sofort: Die Suche zielt auf die Live-Version von The Wall, Part II, aus dem 1995er Pulse-Album.

Schweigen im Walde?

Doch wie hören Sie all die schönen Lieder jetzt eigentlich an? Mit Beets gar nicht: Das Programm konzentriert sich darauf, Lieder zu verwalten, nicht sie abzuspielen. Um das gewünschte Lied zu hören, öffnen Sie die MP3-Datei im jeweiligen Verzeichnis. In der Grundeinstellung sortiert Beets die importierten Lieder nach dem Schema Interpret/Album/Liedtitel in Unterverzeichnisse. "I Can Feel You" von Anastacia befindet sich in unserem Beispiel im Ordner ~/Musik/Anastacia/Heavy Rotation/. Wem das zu umständlich erscheint, der behilft sich durch ein Plugin, das Beets um einen rudimentären MP3-Player erweitert [4].

Dokumentation

Die Dokumentation von Beets fällt eher dürftig aus. Hilfe erhalten Sie auf der Kommandozeile mit beet help, wobei jeder der Befehle seinerseits noch eine separate Hilfeseite besitzt. Mehr Informationen zu den Parametern beim Entfernen von Liedern erhalten Sie beispielsweise mittels beet help remove. Wesentlich informativer zeigt sich aber das Beets-Wiki [5], das unter anderem die Konfigurationsdatei im Detail beschriebt. Nutzen Sie häufig dieselben Parameter auf der Kommandozeile, bietet es sich an, den Eintrag direkt in der ~/.beetsconfig vorzunehmen.

Fazit

Beets richtet sich an Puristen, die ihre Musikdatenbank entweder per Kommandozeile beziehungsweise via SSH abfragen möchten, oder aber das Tool direkt per Skript einbinden. Allerdings offenbarte der Test einige Schwächen. Zu diesen zählt neben der mageren Dokumentation nicht zuletzt die Tatsache, dass Beets Lieder beim zweiten Import doppelt in der Datenbank indiziert. Auch fehlt dem Tool die Möglichkeit der Suche nach nach zusammenhängenden Zeichenfolgen.

Fraglich bleibt, ob die anvisierte Zielgruppe auf ein Tool wie Beets setzen würde oder nicht doch lieber direkt eine eigene Datenbank aufsetzt. Auch eine Kombination aus find, sed, grep und awk leistet schon recht gute Arbeit. Wer etwas fürs Auge sucht, greift ohnehin zu einer grafischen Alternative. Unabhängig davon erscheint der Ansatz von Beets jedoch allemal interessant. 

Der Autor

Florian Effenberger engagiert sich seit vielen Jahren ehrenamtlich für freie Software. Er ist Gründungsmitglied und Mitglied des Steering Committee der Document Foundation. Zuvor war er fast sieben Jahre im Projekt OpenOffice.org aktiv, zuletzt als Marketing Project Lead. Zudem schreibt er regelmäßig für zahlreiche deutsch- und englischsprachige Fachpublikationen.

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare
Metadaten auslesen?
bodenhaftung bei den 3 Konsonanten (unangemeldet), Mittwoch, 14. November 2012 23:07:05
Ein/Ausklappen

Eigentlich habe ich gedacht mit beets kann ich id3 Tags auslesen, aber das scheint gar nicht zu gehen.
Oben hat es geheissen ich kann Metadaten auslesen, aber das ist glaube ich ein bischen positiv ausgedrückt, oder liege ich da falsch?
Gruss


Bewertung: Noch keine Bewertung abgegeben!
Den Beitrag bewerten: Gut / Schlecht