Die Meta-Suite
Einführung
Ich habe so lange erfolglos nach einer vernünftigen Software zum Verwalten meiner MP3s gesucht, dass ich mir irgendwann ein paar Scripte geschrieben habe, die diese Jobs für mich übernehmen. Ich nenne sie die "Meta"-Scripte, weil sie hauptsächlich die Metadaten meiner MP3s verwalten sollen.
Die eigentlichen ID3-Tags lasse ich von eyeD3 schreiben und lesen, einem in Python geschriebenen Script von Travis Shirk. Ich verwende allerdings genau die Version 0.6.18. Die lasse ich auch auf meinem aktuellen Linux auf diesem Wert. Das Ganze läuft bei mir in einem anständigen Debian GNU/Linux.
Dateistruktur
Um die Scripte sinnvoll verwenden zu können, sollte in etwa folgende Ordner-Struktur vorhanden sein:
/home/jexss/musik/jan/audio/Albums/David Bowie/Blackstar
/home/jexss/musik/jan/audio/Albums/David Bowie/Black Tie White Noise
/home/jexss/musik/jan/audio/Albums/David Bowie/Changesbowie
...
/home/jexss/musik/jan/audio/Albums/Kraftwerk/Autobahn
/home/jexss/musik/jan/audio/Albums/Kraftwerk/Computerwelt
/home/jexss/musik/jan/audio/Albums/Kraftwerk/Computer World
/home/jexss/musik/jan/audio/Albums/Kraftwerk/Die Mensch-Maschine
/home/jexss/musik/jan/audio/Albums/Kraftwerk/Electric Cafe
/home/jexss/musik/jan/audio/Albums/Kraftwerk/Electric Cafe v2 en
/home/jexss/musik/jan/audio/Albums/Kraftwerk/Electric Cafe v3 es
...
/home/jexss/musik/jan/audio/Albums/Kraftwerk/Minimum Maximum -1-
/home/jexss/musik/jan/audio/Albums/Kraftwerk/Minimum Maximum -2-
...
/home/jexss/musik/jan/audio/Maxis/Depeche Mode/A Pain That I'm Used To
/home/jexss/musik/jan/audio/Maxis/Depeche Mode/A Pain That I'm Used To v2
/home/jexss/musik/jan/audio/Maxis/Depeche Mode/A Question Of Lust
/home/jexss/musik/jan/audio/Maxis/Depeche Mode/A Question Of Lust v2
...
/home/jexss/musik/jan/audio/Singles/Depeche Mode/A Question Of Lust
...
Dabei ist das blau markierte Verzeichnis eine so genannte Kollektion und stellt das Root-Filesystem der jeweiligen Sammlung dar. Die Meta-Suite setzt voraus, dass es eine spiegelbildliche Ordnerstruktur gibt, die aus einem .../audio/...
und einem .../meta/...
Zweig besteht. Im ersten Bereich liegen die eigentlichen MP3, arrangiert wie oben beschrieben:
jexss@trillian:~/musik/jan/audio/Maxis/Depeche Mode/Strangelove$ ls -l
total 16928
-rw-r--r-- 1 jexss jexss 8182042 Mar 27 22:58 01.depeche-mode_strangelove.mp3
-rw-r--r-- 1 jexss jexss 2560395 Mar 27 22:58 02.depeche-mode_strangelove.mp3
-rw-r--r-- 1 jexss jexss 6582913 Mar 27 22:58 03.depeche-mode_strangelove.mp3
und in dem anderen die dazugehörigen Meta-Files. Letztere müssen initial nicht vorhanden sein, sie können mit meta-get
aus den vorhandenen ID3-Tags erzeugt werden. Je besser diese bereits gepflegt sind, desto besser werden sie natürlich. Diese meta-Files sind je Ordner, also je Album, genau vier an der Zahl:
jexss@trillian:~/musik/jan/meta/Maxis/Depeche Mode/Strangelove$ ls -l
total 516
-rw-r--r-- 1 jexss jexss 442358 Mar 27 22:58 cover-comp.png
-rw-r--r-- 1 jexss jexss 80364 May 10 2020 cover.jpg
-rw-r--r-- 1 jexss jexss 249 Mar 27 22:46 meta
-rw-r--r-- 1 jexss jexss 0 Mar 29 15:34 meta.ok
Dabei ist cover.jpg eine im Idealfall 500x500 Pixel große Abbildung des Cover-Fotos ...
jexss@trillian:~/musik/jan/meta/Maxis/Depeche Mode/Strangelove$ identify cover.jpg
cover.jpg JPEG 500x500 500x500+0+0 8-bit sRGB 80364B 0.000u 0:00.000
... und cover-comp.png ist das etwas größere Bild, dass um die Meta-Informationen ergänzt wurde, siehe letzte Seite. Die Erzeugung dieses Files übernimmt die Meta-Suite beim Schreiben der ID3-Tags. Wenn ich mit meta-get Infos aus den Files auslese, dann lasse ich den Extrakt dieses angepassten Covers weg, denn es wird ja eh beim nächsten Schreibvorgang neu erzeugt.
jexss@trillian:~/musik/jan/meta/Maxis/Depeche Mode/Strangelove$ identify cover-comp.png
cover-comp.png PNG 600x600 600x600+0+0 8-bit sRGB 442358B 0.000u 0:00.000
Beispiel:
Die Datei meta ist das eigentliche Steuerungsfile und meta.ok dient nur als Flag-File. Letzteres wird nach dem Update der MP3-Dateien neu getoucht. Damit lässt sich innerhalb eines großen Dateibaumes gezielt nur auf Files arbeiten, die sich nach einer gescripteten Aktion geändert haben. Das File meta sieht in diesem Fall so aus:
jexss@trillian:~/musik/jan/meta/Maxis/Depeche Mode/Strangelove$ cat meta
Album=Strangelove
Disc=
Compilation=
Artist=Depeche Mode
Genre=Maxi
Year=1987
Release=2
Comment=Vinyl 12 / UK 12" / 12Bong13
Origin=Lame
01 | Depeche Mode | Strangelove [Maxi Mix]
02 | Depeche Mode | Strangelove [Midi Mix]
03 | Depeche Mode | Fpmip
Generelle Arbeitsweise
Die Pflege der meta-Files erfolgt nun immer im meta-Zweig des Verzeichnisbaumes, und zwar rekursiv ab dem aktuellen Verzeichnis. Innerhalb eines Albums ist also nur dieses selbst betroffen, darüber der Interpret und so weiter. Nach dem Editieren eines meta-Files wird dessen Inhalt und das Cover mit dem Befehl meta-put
in alle MP3-Files des entsprechenden Spiegel-Verzeichnisses geschrieben.
Wenn sich nun etwas im Detail oder auch grundsätzlich als änderungswürdig herausstellt, dann ist es durch rekursives Editieren der meta-Files ein leichtes, mal eben alle Änderungen auf einmal in die MP3s einzupflegen.
Das "meta"-File
Das File meta enthält alle Infos, die für das Erzeugen der ID3-Tags aller MP3s eines Albums nötig sind. Dabei findet sich der Inhalt der Kopfzeilen dann in jedem File gleichermaßen, während die Infos der unteren Zeilen für jeden Song einzeln gespeichert werden. Ein Beispiel:
jexss@trillian:~/musik/jan/meta/Compilations/Blank & Jones/So80s Presents Formel Eins -1-$ cat meta
Album=So80s Presents Formel Eins -1-
Disc=1
Compilation=1
Artist=Blank & Jones
Genre=Mix
Year=2013
Release=2
Comment=CD / DE 3xCD / CD 1 - Mixed By Blank & Jones
Origin=Lame
01 | Michael Jackson | Billie Jean [Album Version]
02 | Modern Talking | You're My Heart, You're My Soul [Extended Version]
03 | Falco | Der Kommissar [Extended Version]
04 | Freeez | I.O.U. [Original 12" Version]
05 | Mel & Kim | Showing Out (Get Fresh At The Weekend) [12" Version]
06 | Kylie Minogue | Better The Devil You Know [The Mad March Hare Mix]
07 | Bananarama | I Heard A Rumour
08 | Whitney Houston | So Emotional [Album Version]
09 | Stock Aitken Waterman | Roadblock [Extended Version]
10 | Glen Goldsmith | I Won't Cry [Album Version]
11 | The Blow Monkeys | It Doesn't Have To Be This Way [Long]
12 | Milli Vanilli | Girl You Know It's True [Album Version]
13 | Princess | Say I'm Your Number 1 [Full Length Version]
14 | Men Without Hats | Safety Dance [Club Mix]
15 | Hubert Kah | Limousine [Extended Version]
16 | Kajagoogoo | Too Shy [Album Version]
17 | Thompson Twins | Hold Me Now [Extended Version]
18 | Wham | Wham Rap! (Enjoy What You Do?) [US Remix]
19 | Rick Astleyk | Whenever You Need Somebody [Lonely Hearts Mix]
20 | Spagna | Call Me [Album Version]
Der Header des Files bedeutet also: Das Album So80s Presents Formel Eins, und zwar konkret der erste Teil eines Sets, der allerdings ineinander gemixte Titel enthält (Genre Mix) des Album-Interpreten Blank & Jones ist eine Compilation (daher die 1), also eine Zusammenstellung von Songs unterschiedlicher Künstler, die auch vom Player entsprechend außerhalb der normalen Alben einsortiert werden muss. Die CD erschien 2013 und zwar als zweite Veröffentlichung des Albuminterpreten in diesem Jahr (Release=2, daraus wird später die TSOA generiert, also die Album Sort Order). Ich habe die CD selbst gerippt und mit Lame kodiert.
Danach folgt für jeden der 20 Songs zeilenweise ein Eintrag mit Tracknummer, Interpret und Titelname, getrennt durch "Leerzeichen, Pipe, Leerzeichen". Die Titel sind ausnahmslos irgendwelche Versionen (in eckigen Klammern). Bei Track 5 sieht man, warum ich dafür eckige verwende.
Download der Meta-Suite
Aktuelle Version: 1.2.0 vom 24.04.2023
- meta-1.2.0.tar.gzAlle Bestandteile in einem Archiv.
- meta-getZum Auslesen der ID3-Tags.
- meta-putZum Schreiben der Metainformationen in die MP3-Dateien.
- meta-fileZum Umbenennen der MP3-Dateien.
- meta-checkZur Überprüfung der meta-Files auf Fehler.
- meta-coverZum Erzeigen der Cover-Templates.
Ergänzende Downloads
Fortsetzung folgt...