Datenschutz
Home/Audio/Mediathek/Die Meta-Suite  

 

← Zurück  

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 im Moment die Version 0.9.7, weil die ohnehin zum aktuellen Betriebssystem gehört. Vorher war ich lange Zeit mit der Version 0.6.18 glücklicher, aber diese läuft nicht mehr unter der PHP-Version von Debian 12. An einigen Stellen muss ich jetzt ffprobe verwenden, weil ich entweder zu dumm bin, eyeD3 zur Ausgabe speziellerer Tags zu verleiteten oder weil das vielleicht auch einfach nicht mehr geht.

Das Ganze läuft bei mir in einem anständigen Debian GNU/Linux, im Moment Version 12 (bookworm).

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/Computer World v2 fr
/home/jexss/musik/jan/audio/Albums/Kraftwerk/Computer World v3 jp
...
/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/Singles-12/Depeche Mode/A Pain That I'm Used To
/home/jexss/musik/jan/audio/Singles-12/Depeche Mode/A Question Of Lust
/home/jexss/musik/jan/audio/Singles-12/Depeche Mode/A Question Of Lust v2
/home/jexss/musik/jan/audio/Singles-12/Depeche Mode/A Question Of Lust v3
...
/home/jexss/musik/jan/audio/Singles-7/Depeche Mode/A Question Of Lust
...
/home/jexss/musik/jan/audio/Singles-CD/Depeche Mode/A Pain That I'm Used To
/home/jexss/musik/jan/audio/Singles-CD/Depeche Mode/A Pain That I'm Used To v2
...

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 Audio-Bereich liegen die eigentlichen MP3, jeweils ein Album in einem Verzeichnis:

jexss@trillian:~/musik/jan/audio/Singles-12/Depeche Mode/Strangelove$ ls -l
total 16928
-rw-r--r-- 1 jexss jexss 8186849 Apr  6 10:28 01.depeche-mode-m_strangelove.mp3
-rw-r--r-- 1 jexss jexss 2565429 Apr  6 10:28 02.depeche-mode-m_strangelove.mp3
-rw-r--r-- 1 jexss jexss 6587999 Apr  6 10:28 03.depeche-mode-m_strangelove.mp3

Wichtig ist dabei die Mindestnomenklatur ??.*mp3, also auch 01.mp3, 02.mp3, 03.irgendwas.mp3 würde erst mal reichen. Später lassen sich die Dateien mit meta-file passend umbenennen.

Im Spiegelverzeichnis liegen 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, maximal vier an der Zahl:

jexss@trillian:~/musik/jan/meta/Singles-12/Depeche Mode/Strangelove$ ls -l
total 516
-rw-r--r-- 1 jexss jexss 447930 Apr  6 10:28 cover-comp.png
-rw-r--r-- 1 jexss jexss  80364 May 10  2020 cover.jpg
-rw-r--r-- 1 jexss jexss    256 Apr  5 23:36 meta
-rw-r--r-- 1 jexss jexss      0 Apr  6 10:28 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:

cover.jpg
cover.jpg (500x500 px)
cover-comp.png
cover-comp.png (600x600 px)

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/Singles-12/Depeche Mode/Strangelove$ cat meta
Album=Strangelove
Disc=
Compilation=
Artist=Depeche Mode
Genre=Single_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.8.1 vom 10.04.2024

Fortsetzung folgt...