Hallo,
es gibt jede Menge Beiträge zur "MP3 Kollektion Struktur". Muss man nicht alle durchgelesen, aber eins ist klar: sie sind sehr, sehr unterschiedlich *1) siehe Link. Trotzdem möchte ich hier meine Variante ausführlich erläutern. Meine Sammlung umfasst mehrere tausend CD-Alben. Ich habe dieses Konzept mehrfach verfeinert und meinen Bedürfnissen angepasst. Ich sammle nur ganze Alben. Ich tausche auch mit Freunden und vermerke von wem ich was wann bekommen habe im Feld %fileowner%. Dazu benutze ich erweiterte Tag-Felder. Das Feld %fileowner% kann ersatzlos entfallen, falls man kein "Herkunftskürzel" verwenden möchte. Dann entfällt auch A-4.) und B-1.)
K r i t e r i e n
- Möglichst nur komplette Alben pro Ordner, notfalls nur 1 Track als Album
- Trennung Sampler/Interpreten-Alben (Compilation-Tag) *2)
- Einheitliche Verzeichnistiefe, ggf. CD 1, CD 2, CD 3 usw. bei Doppelalben
A: A l l g e m e i n e Z i e l e
1.) Sortenreine Trennung von Nicht-Samplern (ich nenne diese "Interpreten-CD") und Samplern *2)! Beispielhaft ausgedrückt könnte man sagen, die "Atomisierung" endet pro CD bzw. Album (d.h. die kleinste Verzeichniseinheit ist der Albumordner). Besonderheiten wie Hörspiele, Literatur, Klassik, Schlager *3) usw. werden ebenfalls abgetrennt. Es verbleiben Pop-Rock-Jazz-Alben, auf die ich mich hier beziehe. Das %genre%-Feld wird nicht für die Ordnerstruktur benutzt. %Comment% bleibt leer oder wird nur temporär benutzt.
2.) Vermeidung von Redundanzen: Die Informationen sind nur in MP3-Tags gespeichert, nicht etwa andere auch als Bestandteil der Verzeichnisnamen. (Gemeint ist: nicht ein bisschen hier, ein bisschen da). Pfade, Playlisten und Cover werden vollständig aus den MP3-Tag-Informationen generiert. Damit ergibt sich der zwangsläufige Informationsfluss von Tag-Inhalt nach Pfad/Datei-Name. Muss irgendwo etwas geändert werden, dann wird dies in den Tags geändert und der Verzeichnisbaum wird daraus neu generiert. Die Datenbank-Konsistenz (Integrität) bleibt zu jedem Zeitpunkt gewahrt.
3.) Die sog. Arbeitsverzeichnisse (Alben-Ordner) enthalten NUR MP3-Dateien; Cover.jpg's und Liedtexte.txt's werden "eingebettet" *4). Andere "artfremde" Dateinen wie PDF, HTM, XLS, RTF, PNG, GIF, BMP usw. werden als Dummy-Mp3's maskiert und als "Container" *5) mitgeschleppt. Cover-jpgs und andere jpg-Bilddateien sind nur noch in der MP3-Datei selbst integriert!
4.) Die Datensicherung wird folgendermaßen realisiert: Das Original, organisiert nach %fileowner%, lagert auf externen Platten bzw. NAS. Daraus wird der Live-Server als Arbeitskopie erzeugt, ohne dass nach %fileowner% unterschieden wird; die Verzeichnisse werden sozusagen "ineinander" kopiert. Erkannte Doppel müssen auf dem Original bei dem %fileowner% mit der schlechteren Qualität gelöscht werden. Neue Daten werden nur dem Original hinzugefügt. Bei Bedarf wird daraus ein neuer Live-Server als Arbeitskopie erzeugt (und nicht umgekehrt). Nebeneffekt: Wenn Freunde mir ihre MP3-Sammlung zur Verfügung stellen, haben diese automatisch eine zusätzliche Sicherheitskopie.
B: D u r c h f ü h r u n g
Bei der großen Menge an MP3s brauche ich natürlich eine "Vorsortierung", denn tausende Ordner auf einer Ebene sich nicht vernünftig zu handhaben. Als Vorsortierung benutze ich das Feld %partinset% *6) mit den Buchstaben "A bis Z" bei Nicht-Samplern (=Interpreten-CD) und "Jahrzehnte" bei Samplern (Compilation-CD). Die erweiterten Tag-Felder musste ich dazu zweckentfremden. Die Hierarchie ergibt sich aus folgender Liste:
1.) %fileowner%\ Herkunft der MP3s, z.B. Eigene, Tochter, Sohn usw.
2.) %contentgroup%\ Unterscheidung zwischen Interpreten-CD und Compilation-CD, z.B. RPJ-Interpr und RPJ-Sampler
3.) %partinset%\ Vorsortierung, z.B. A, B, C, D bzw. 197x, 198x, 199x, 200x usw.
4.) ... folgen die normalen Tag-Felder %artist%, %year%, %album%, %track%, %title%. Das Tag-Feld %genre% *7) allerdings nur optional. %comment% wird nicht verwendet (bzw. kann für Besonderheiten herangezogen werden).
Konkret sieht dann der Verzeichnispfad mit Dateiname dann folgendermaßen aus:
bei Nicht-Samplern (=Interpreten-CD) ist %Compilation% = 0 oder nicht vorhanden
...\%fileowner%\%contentgroup%\%partinset%\%artist%\%year% - %album%$num(%track%,2). %title%
und bei Samplern (=Compilation-CD) ist %Compilation% = 1
...\%fileowner%\%contentgroup%\%partinset%\%year%\%album%$num(%track%,2). %title% - %artist%
In beiden Fällen werden genau die 8 gleichen Tag-Felder benutzt nur in anderer Reihenfolge. Auch die Anzahl der Verzeichnisebenen (6) ist gleich. Wenn %fileowner% nicht benutzt wird, sind es jeweils nur 7 Tag-Felder in 5 Ebenen.
C: M e r k m a l e
1.) Gleich hohe Verzeichnistiefe bei Nicht-Samplern und Samplern, kein Mischmasch (Hinweis: Doppelalben werden als 2 Alben mit dem Zusatz CD 1 und CD 2 behandelt), kein "Ermessenspielraum", Eindeutigkeit der Struktur, logische Erweiterbarkeit.
2.) Jedes TAG-Feld wird genau nur einmal in dem Verzeichnispfad mit Dateiname abgebildet (keine Redundanz). Daraus lassen sich beliebig Struktur und Playlisten automatisch neu generieren. Allerdings immer getrennt nach Nicht-Samplern und Samplern. Z.B. als Formatstring (siehe oben) oder tausende Playlisten jeweils pro CD:
(iTunesCompilation = 0)
...\%fileowner%\%contentgroup%\%partinset%\%artist%\%year% - %Album%_PLAYLIST.m3u
(iTunesCompilation = 1)
...\%fileowner%\%contentgroup%\%partinset%\%year%\%Album%_PLAYLIST.m3u
3.) Zwangsläufig ergibt sich eine
a ) alphabetische Ordnung für Interpreten-CDs und
b ) eine chronologische Ordnung für Compilation-CDs.
Die Struktur ist also gleichzeitig eine verzeichnisbasierende Datenbank, im gewissen Sinne eine Diectory-DB!
4.) Dieses Schema ist für Sammler, die nur einzelne Tracks sammeln, nicht geeignet. Oder sie müssten ein fiktives Album z. B. mit %artist% = _various und %album% = Sammelsurium definieren
S c h l u s s b e m e r k u n g
Natürlich ist es eine Heidenarbeit, die TAG-Felder manuell so wie oben beschrieben anzupassen. Dafür erhält man eine flexible "Datenbank", erkennt Doppelte, ist erweiterungsfähig usw. Bei der Erfassung sollte man schon die Grundlagen legen, z.B. mit den Einstellungen bei Audiograbber. Diese klare Verzeichnishierarchie erlaubt auch die Erzeugung komplexer htm-Dateien *8.) sogar mit Cover, ohne dass struktureller Mehraufwand nötig ist.
PS.: Einzelfragen beantworte ich auch per Mail
Fußnoten
*1) siehe folgende Links
MP3 Kollektion Struktur (veraltet)
Taggen und Verwalten der Audiosammlung mit MP3tag, ohne Scriptingkenntnisse (habe ich persönlich nie angewandt)
Der Königsweg beim Taggen (schon von 2008)
*2) ehemals iTunesCompilation
Namen und Mapping von ID3v2/WMA/MP4 Tag-Feldern
*3) Neben Rock-Pop-Jazz (RPJ) habe ich noch die Contentgroup Klassik und Hörspiele auf die ich aber hier nicht weiter eingehen will.
Nichtsampler nenne ich häufig auch "Interpreten-Album". Die Kombination lautet RPJ-Interpr und RPJ-Sampler. Für Klassik heißen die dann Kla-Interpr und Kla-Sampler usw.
*4) "eingebettet" bedeutet, das die Bilddateil der mp3-Datei wird. Manchmal verwende ich auch den Begriff "integriert" oder "importiert".
Jede mp3-Datei speichert immer nur 1 Bilddatei. Existieren mehrere Bilddateien, erhält mp3-Datei in dem Albumordner eine andere Bilddatei. Es können dabei nicht mehr verschiedene Bilder als Mp3's vorhanden sind eingebettet werden. z.B. $if($eql($num(%track%,2),02),front.jpg,) usw.
Front Cover / Back Cover
Cover automatisch in Tags schreiben
Für den Coverimport gibt es diverse Scripte, siehe dieses für Last.FM u.a.
*5) "Transportcontainer" (mitschleppen soll bedeuten, dass bei einer Änderung der Verzeichnisstruktur keine manuellen Schritte notwendig sind)
Cover mit verschieben erst importieren, dann verschieben
Cover mit verschieben Transportcontainer
DetlevD Beitrag Mar 27 2008, 10:50 Beitrag #6
Anstelle der Speicherung von einzelnen Bildern in mehreren mp3 Dateien mit dem Zweck, die Bilder von einem Ordner zum anderen zu übertragen, kann man auch nur eine einzige Transportcontainer mp3 Datei benutzen, in der alle Bilder gespeichert werden.
Vorschlag: Andere Ordner-Inhalte mit umbenennen und mitverschieben
*6) das Feld %partinset% ist inzwischen kein "erweitertes" Tagfeld mehr. Ich werde später für diesen Zweck %RELEASETIME% (TDRL) als Ersatz nehmen.
Meine anderen Nicht-Standard-Tagfelder für den Pfadaufbau sind (in Klammern stehen die Anzahl der Zeichen):
%taggingtime%(3), %fileowner%(5), %contentgroup (11), %partinset% (1)
*7) Die Genre habe ich zu 12 Gruppen zusammengefast, siehe mit weiterführenden Links zu Wikipedia.
Hierarchische Taxonomie von Genres, ein pragmatischer Vorschlag
*8) Mit mp3tag erzeugte htm-Dateien als Album-Verzeichnis, die nachfolgende Beschreibung kann naturgemäß nicht interaktiv dargestellt werden:
- Mit einen Klick auf den "Artist"-Link wird die Album-Liste ein- bzw. ausgeschaltet; mit einen Klick auf den "Album"-Link wird die Track-Liste ein- bzw. ausgeschaltet. (Hintergrundfarben: Artist-Ebene = blass-blaugrau, Album-Ebene = blass-violett, Track-Ebene = blass-magenta).
- Beim Klicken auf den "Play"-Link startet der unter "Dateizuordnungen" eingestellte Player, z.B. Winamp, VCL oder dgl. mit der "m3u-Playlist" und spielt das ganze Album ab.
- Beim Klicken auf den Track startet der Browser mit dem Audio-Plugin, üblicherweise ist das QuickTime und spielt nur diesen Track ab.
- Der Link der Alben-lfd-Nr. führt zum jeweiligen Windows-Ordner und zeigt dessen Inhalt. Das können neben den Musik-Dateien auch Cover oder Liedtexte sein.
- Gelegentlich sind Tooltip's eingearbeitet.
Zum Löschen von leeren Verzeichnisse gibt es ein Tool "Tipp: Leere Verzeichnisse aufspüren und entfernen" von PCWELT "pcwEmptyFolder"
Löschen von leeren Verzeichnissen