Wenn der MP3-Player Titel, Interpret und womöglich auch noch den Album-Namen anzeigen soll, muss er die Information irgendwoher bekommen. Aus dem Dateinamen sicher nicht – zuständig sind die sogenannten ID3-Tags, um die sich id3lib kümmert.
Da können die MP3-Dateien noch so säuberlich in Verzeichnisse sortiert sein, die den passenden Band-Namen tragen, eine Ebene darunter wie die Platten heißen und im Dateinamen den Songtitel preisgeben – wo Menschen von sich aus das Ordnungsprinzip erfassen, streikt die Technik: Die Titelanzeige des MP3-Players bleibt so lange leer, wie er die Informationen nicht direkt und standardisiert aus der MP3-Datei selbst erfährt.
out of the box
Es gibt tausende Tools und Utilities für Linux. “out of the box” pickt sich die Rosinen raus und stellt pro Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten.
Der Trick dabei nennt sich ID3-Tags. Das sind Zusatzinformationen, die – je nach Version – vor oder nach den Musikdaten in die MP3-Dateien hineingeschrieben werden. Im Verbund mit der Bibliothek id3lib[3] kommt man zu zuverlässigen Helferlein, die diese Aufgabe übernehmen.
Die Bibliothek unterstützt sowohl den älteren Standard ID3v1 als auch die neuere Version ID3v2. Wer selbsterstellten MP3-Dateien [1] mehr Informationen als Interpret, Songname und Albumtitel mitgeben will (Tanzbegeisterte interessiert vielleicht, ob es sich um einen Cha-Cha-Cha oder Wiener Walzer handelt), greift zu den Tags der Version 2. Sie lassen beliebige Daten (Weblinks oder sogar Bilder) zu.
Bei der id3lib legen die Entwickler um den Initiator Dirk Mahoney besonderen Wert auf die genaue Umsetzung der Spezifikationen. Dies fällt im täglichen Einsatz immer wieder positiv auf: Weder an kaputten MP3-Dateien noch an illegalen Tags und anderen Hindernissen scheitert die Software, die der LGPL unterliegt. Ihr Hauptbestandteil, die Bibliothek libid3, kommt auch in anderen Projekten, etwa den beiden Ripper-Programmen grip[1] und der Windows-Software MusicMatch, zum Einsatz.
Zum “Stempeln” der MP3-Dateien dient das mitgelieferte Tool id3tag; id3info zeigt alle gesetzten Tags an, id3convert konvertiert zwischen ID3v1 und ID3v2, und das vierte Zusatzprogramm, id3cp, kopiert die Tags von einer Datei auf eine andere.
Installation kurz und bündig
Benutzer eines aktuellen Red Hat Linux oder der Fedora-Core-Distribution (siehe Seite 28 f.) finden auf der Heft-CD bereits ein vorgefertigtes Binärpaket, das sie mit
rpm -ivh id3lib-3.8.3-1.i386.rpm
als root auf der Kommandozeile installieren. Liefert Ihr Distributor kein id3lib-Paket mit, besteht natürlich die Möglichkeit des Quellcode-Eigenbaus nach Hausmacher Art:
tar xzf id3lib-3.8.3.tar.gz cd id3lib-3.8.3 ./configure make su make install
Zeig Deine Stempel!
Welche ID3-Tags vorhandene MP3-Dateien unter Umständen schon enthalten, verrät id3info. Mit einem oder mehreren Dateinamen aufgerufen gibt das Programm alle gesetzten Tags, deren Inhalte sowie die Bitrate der Aufnahme aus (Abbildung 1). Diese Informationen liefern auch fast alle gängigen MP3-Player. So zeigt xmms mit der Tastenkombination [Strg-3] die gesetzten ID3-Tags an (Abbildung 2).
Wer eine neue, bessere Version einer MP3-Datei erzeugt hat, überträgt die Tags der alten Datei mit
id3cp Datei_alt.mp3 Datei_neu.mp3
auf die neue. Darauf beschränken sich die Anwendungsmöglichkeiten dieses Tools allerdings, denn einzelne Tags (etwa Interpret und Albumtitel) von einem File auf ein anderes zu kopieren, geht nicht.
Kennzeichen XY
Möchte man einen Fehler in einem schon vorhandenen Tag ausbügeln oder ein Tag neu setzen, hilft id3tag weiter, ein schnörkelloses Tool, das genau das tut, was man ihm sagt. So versieht der folgende Befehl die Datei 01.mp3 mit Daten zur Band (artist”), zum Titel (song), zum Erscheinungsjahr (year) und zum Album-Namen:
id3tag -a"Cannonballs" -s"My Song" -y"2003" -A"Promo EP" 01.mp3
Schreibrechte für 01.mp3 vorausgesetzt, setzt er sowohl die ID3v1- als auch die ID3v2-Tags. Durch explizite Angabe der Optionen -1 oder -2 beschränkt man sich beim “Stempeln” auf eine der beiden Versionen.
Fehlende Angaben, etwa den Albumtitel, lassen sich nachträglich hinzufügen oder ändern, ohne dabei andere Tags zu beeinflussen:
id3tag -A"RAL 9005" *mp3
setzt den Namen des Albums in allen Dateien mit der Endung mp3 im aktuellen Verzeichnis auf RAL 9005 und überschreibt dabei lediglich bereits bestehende Album-Tags.
Wer häufig Kompilationen eines Musik-Stils zusammenstellt (oder einfach für den Rest des Abends nur noch Blues hören mag), versieht seine MP3s mit einem Genre-Tag:
id3tag -g"17" 01.mp3
verpasst dem Beispiel-Stück die Genre-ID 17 (siehe Tabelle 1) und ordnet es damit als Rock ein.
Die vollständige ID3v1-Genre-Liste von [4] mag imposant aussehen, stellt aber wahre Musik- und Tanzfreunde lange nicht zufrieden. Deshalb gibt es bei ID3v2 die Möglichkeit, eigene Rubriken zu setzen, die id3info zum Beispiel so anzeigt:
=== TCON (Content type): Wiener Walzer
Doch was id3info anzuzeigen vermag, kann id3tag leider nicht setzen – obwohl die Bibliothek selbst entsprechende Funktionen zur Verfügung stellt. (Das gilt im übrigen auch für eingangs erwähnte Annotationen in Form von URLs und Bildern.) Als zweifelhafter Trost bleibt, dass Open-Source-Player wie xmms diese Tags – anders als das Windows-Pendant winamp – derzeit ohnehin nicht auswerten. Aber eine nächste Version kommt bestimt…
Tabelle 1: Wichtige Genre-IDs
| 0 | Blues |
| 2 | Country |
| 3 | Dance |
| 16 | Reggae |
| 17 | Rock |
| 35 | House |
| 78 | Rock&Roll |
Glossar
-
ID3v1
-
Die beiden Versionen des ID3-Standards unterscheiden sich in erster Linie darin, welche Informationen sie in MP3-Dateien speichern können. So erlaubt ID3v2 beliebige Informationen bis zu 16 MB Größe in einem Tag-Feld, während Version 1 nur eine Handvoll Spezialtags für Titel, Interpret, Album, Jahr etc. von je maximal 30 Zeichen Länge vorsieht. Bei ID3v2 können Liedern auch URLs oder Bilder zugeordnet werden. Neu ist zudem die Position des Tags am Anfang einer MP3-Datei, so dass auch zu einer inkompletten oder gestreamten MP3-Datei jederzeit die passenden Informationen vorliegen.
-
ID3v2
-
Die beiden Versionen des ID3-Standards unterscheiden sich in erster Linie darin, welche Informationen sie in MP3-Dateien speichern können. So erlaubt ID3v2 beliebige Informationen bis zu 16 MB Größe in einem Tag-Feld, während Version 1 nur eine Handvoll Spezialtags für Titel, Interpret, Album, Jahr etc. von je maximal 30 Zeichen Länge vorsieht. Bei ID3v2 können Liedern auch URLs oder Bilder zugeordnet werden. Neu ist zudem die Position des Tags am Anfang einer MP3-Datei, so dass auch zu einer inkompletten oder gestreamten MP3-Datei jederzeit die passenden Informationen vorliegen.
-
LGPL
-
Die “GNU Library General Public License” erlaubt es jeder Applikation, egal unter welcher Lizenz sie steht, die Bibliothek id3lib zu benutzen. Sie garantiert aber auch, dass die Bibliothek und alle Erweiterungen in Sourcecode-Form frei zugänglich gehalten werden müssen.
-
Bitrate
-
Gibt an, wieviel Bits eine Sekunde der Audio-Aufnahme durchschnittlich ausmachen. Bei MP3s trifft man meist auf Werte von 64 kbit/s, 96 kbit/s, 128 kbit/s und 160 kbit/s. Höhere Bitraten stehen in der Regel für bessere Qualität.
Infos
[1] Frederik Bijlsma: “Kleine Dateien ganz groß”, Linux User 09/2003, S. 66 ff.
[2] Informationen zum ID3v2-Standard: http://www.id3.org/
[3] id3lib: http://id3lib.sourceforge.net/
[4] Genre-IDs: http://www.killesberg.org/linuxuser/genres.txt






