Cover Bilder exportieren - importieren

Siehe auch:
Cover Bildformat anzeigen ändern

Manchmal muss man bereits in die Musikdatei eingebettete Bilder grafisch bearbeiten und danach in die Musikdatei zurück betten bzw. das vorhandene alte Bild gegen das neue Bild austauschen.

Um für einen erfolgeichen Bild Export und Import eine nachvollziehbare Systematik zu haben, muss man sich doch wieder etwas anstrengen, auch noch in der aktuellen Mp3tag Version 2.48.

Was den Export und Import einfach machen würde, das wäre eine eindeutiger Name für jedes exportierte Bild.
Weil Musikdateien auch mehrere Bilder enthalten können, muss die Zuordnung jedes Bildes zu seiner Trägerdatei erkennbar und nachvollziehbar sein, damit nach dem Export auch der Import erfolgreich gelingen kann.

Welche eindeutigen Merkmale hat eine Musikdatei?

Einzelne Werte wie Artist, Album, Track usw. sind ganz bestimmt keine eindeutigen Merkmale.
Eine Kombination aus Artist+Album+Track kann vielleicht schon eine gewisse Sicherheit für die Zuordnung herstellen, aber auch hierbei sind doppelte Namen durchaus zu erwarten.

Ein ziemlich dauerhafter eindeutiger Wert ist der MD5 Hash Wert des Audioteils der Musikdatei.
Mp3tag kann diesen Wert berechnen und stellt ihn als Dateieigenschaft zur Verfügung - allerdings nur im Bereich "Datei/Export" - leider nicht im Bereich "Aktionen".
Es wäre wünschenswert, die Hash Dateieigenschaften auch in den Aktionen benutzen zu können.
Denn dann könnte man ein benutzerdefiniertes Tag-Feld anlegen mit dem MD5 Audio Hash.
Für den Export und Import von Bildern kann man die MD5 Zeichenkette als eindeutige und reproduzierbare Zuordnung benutzen.

Aber die Berechnung des MD5 Audio Hash ist eine zeitraubende Angelegenheit.
Für den Zweck der eindeutigen Identifizierung gibt es auch andere Methoden, zum Beispiel die Erzeugung einer GUID Kennung.
http://de.wikipedia.org/wiki/Globally_Unique_Identifier

Eine GUID vom System zu holen ist sehr_sehr viel schneller, als einen MD5 Hash zu berechnen, zu berechnen, zu berechnen, zu berechnen, zu berechnen, zu berechnen, zu berechnen.

Vorschlag an den Entwickler Florian Heidenreich:
Bitte eine Funktion $guid() implementieren, die bei jedem Aufruf eine neue GUID liefert.

Damit kann man z. B. ein benutzerdefinertes Tag-Feld füllen und "Cover Export - externe Cover Bearbeitung - Cover Import" wäre mit GUID als Cover Dateiname ein sehr einfacher Prozess.

Bis zur Implementierung der Funktion $guid() muss man sich irgendwie behelfen, zum Beispiel durch die Kombination von Tag-Feld Inhalten, um möglichst eindeutige Zuordnungen zu gewährleisten.
Beispiel Cover Export
Formatstring: 'O:\COVERS'%ARTIST%'---'%ALBUM%'---'%TRACK%

Allerdings können dabei durch Sonderzeichen in den Tag-Feldern ungültige Dateinamen entstehen. Mit der Funktion $validate() kann der auszugebende Dateipfadname gesäubert werden.

Allerdings funktioniert die Funktion $validate nicht im Formatstring beim Cover Export.
Formatstring: O:\COVERS$validate(%ARTIST%'---'%ALBUM%'---'%TRACK%)
Das erzeugte im Test im Zielordner Dateien nach dem Muster
"(1).jpg"
"(2).jpg"
"(3).jpg"
und so weiter.
Das ist ein Fehler.

Achtung: Wie in diesem Thread in post#2 vermerkt ist die vorstehende Funktion $validate nicht korrekt angewendet, denn es fehlt der zweite Parameter. Aus Dokumentationsgründen bleibt dieser Fehler hier im Text erst einmal so erhalten.

Auch das funktioniert nicht:
Formatstring: $validate('O:\COVERS'%ARTIST%'---'%ALBUM%'---'%TRACK%)
Das erzeugt in jedem Ursprungsordner Dateien nach dem Muster
".jpg"
"(1).jpg"
und so weiter.
Das ist ein Fehler.

Achtung: Wie in diesem Thread in post#2 vermerkt ist die vorstehende Funktion $validate nicht korrekt angewendet, denn es fehlt der zweite Parameter. Aus Dokumentationsgründen bleibt dieser Fehler hier im Text erst einmal so erhalten.

Wenn man sich die erzeugten Dateinamen anschaut (ohne Verwendung von $validate()), dann stellt man fest, dass Mp3tag dennoch automatisch eine Validierung vorgenommen hat wie es die Funktion $validate() auch tun würde.

Das erscheint zunächst vernünftig und gut, stellt aber für den folgenden Import Vorgang eine Hürde dar.
Denn beim Cover Import läuft der konstruierte Dateiname nicht durch die Mp3tag interne Validierung, so dass der konstruierte Dateiname vom gespeicherten Dateinamen abweichen kann. So werden manche Bilddateien nicht importiert.

Dadurch gibt es keine Zuordnung zwischen der exportierten Bild Datei und der ursprünglichen Trägerdatei. Cover Bilder können so nicht automatisch zurück gebettet werden.

Als Ausweg kann man eine selbstgebaute Validierung verwenden.
Damit ergeben sich die folgende Formatstrings:

<!--fonto:Courier New--><span style="font-family:Courier New"><!--/fonto--><b><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->Export Formatstring:<!--colorc--></span><!--/colorc-->
<!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->O:\COVERS\<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#800080--><span style="color:#800080"><!--/coloro-->$replace<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->(<!--colorc--></span><!--/colorc--><!--coloro:#0000a0--><span style="color:#0000a0"><!--/coloro-->%ARTIST%<!--colorc--></span><!--/colorc--><!--coloro:#0000a0--><span style="color:#0000a0"><!--/coloro-->%ALBUM%<!--colorc--></span><!--/colorc--><!--coloro:#0000a0--><span style="color:#0000a0"><!--/coloro-->%TRACK%<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--> <!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->/<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->?<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->*<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->"<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro--><<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->><!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->|<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->:<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->)<!--colorc--></span><!--/colorc-->

<!--coloro:#000000--><span style="color:#000000"><!--/coloro-->Import Formatstring:<!--colorc--></span><!--/colorc-->
<!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->O:\COVERS\<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#800080--><span style="color:#800080"><!--/coloro-->$replace<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->(<!--colorc--></span><!--/colorc--><!--coloro:#0000a0--><span style="color:#0000a0"><!--/coloro-->%ARTIST%<!--colorc--></span><!--/colorc--><!--coloro:#0000a0--><span style="color:#0000a0"><!--/coloro-->%ALBUM%<!--colorc--></span><!--/colorc--><!--coloro:#0000a0--><span style="color:#0000a0"><!--/coloro-->%TRACK%<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--> <!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->/<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->?<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->*<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->"<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro--><<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->><!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->|<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->:<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->,<!--colorc--></span><!--/colorc--><!--coloro:#000000--><span style="color:#000000"><!--/coloro-->)<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->.jpg<!--colorc--></span><!--/colorc--><!--coloro:#008080--><span style="color:#008080"><!--/coloro-->'<!--colorc--></span><!--/colorc-->
</b><!--fontc--></span><!--/fontc-->

Mp3tag erzeugt bei Dateien mit mehreren Cover Bildern entsprechend mehrere Cover Bilddateien nach dem Muster ...

ArtistAlbum101.jpg
ArtistAlbum101.jpg.jpg
ArtistAlbum101.jpg.jpg.jpg

oder auch
ArtistAlbum201.jpg
ArtistAlbum201.jpg.png
ArtistAlbum201.jpg.png.png

oder auch
ArtistAlbum301.jpg
...
ArtistAlbum301.jpg.png.jpg.png.jpg

... je nachdem in welcher Reihenfolge die "jpg" oder "png" Dateien in der Trägerdatei gespeichert sind.

Obwohl diese Dateinamen doch eher als Fehler zu betrachten sind, erlauben sie schließlich,
dass auch die Cover Bilder Nr. 2 und Nr. 3 usw. durch einzelne Import Aktionen wieder importiert werden können.

Export Formatstring: 'O:\COVERS\'$replace(%ARTIST%%ALBUM%%TRACK%,' ',,'/',,'?',,'*',,'"',,'<',,'>',,'|',,':',) Import Formatstring (mehrere Aktionen): 'O:\COVERS\'$replace(%ARTIST%%ALBUM%%TRACK%,' ',,'/',,'?',,'*',,'"',,'<',,'>',,'|',,':',)'.jpg' 'O:\COVERS\'$replace(%ARTIST%%ALBUM%%TRACK%,' ',,'/',,'?',,'*',,'"',,'<',,'>',,'|',,':',)'.jpg.jpg' 'O:\COVERS\'$replace(%ARTIST%%ALBUM%%TRACK%,' ',,'/',,'?',,'*',,'"',,'<',,'>',,'|',,':',)'.jpg.jpg.jpg' 'O:\COVERS\'$replace(%ARTIST%%ALBUM%%TRACK%,' ',,'/',,'?',,'*',,'"',,'<',,'>',,'|',,':',)'.jpg.jpg.jpg.jpg' oder Import Formatstring (mehrere Aktionen): 'O:\COVERS\'$replace(%ARTIST%%ALBUM%%TRACK%,' ',,'/',,'?',,'*',,'"',,'<',,'>',,'|',,':',)$repeat('.jpg',1) 'O:\COVERS\'$replace(%ARTIST%%ALBUM%%TRACK%,' ',,'/',,'?',,'*',,'"',,'<',,'>',,'|',,':',)$repeat('.jpg',2) 'O:\COVERS\'$replace(%ARTIST%%ALBUM%%TRACK%,' ',,'/',,'?',,'*',,'"',,'<',,'>',,'|',,':',)$repeat('.jpg',3) 'O:\COVERS\'$replace(%ARTIST%%ALBUM%%TRACK%,' ',,'/',,'?',,'*',,'"',,'<',,'>',,'|',,':',)$repeat('.jpg',4)
Wenn "jpg" und "png" Dateien gemischt in einer Trägerdatei vorkommen, dann muss für jede auftretende Kombination die entsprechende Import Aktion angelegt werden.
Das läuft ganz gut, weil Mp3tag keinen Fehler ausgibt, wenn es keine Datei zu einem bestimmten Namen gibt.

Mit einer GUID je Trägerdatei und einer laufenden Nummerierung je Bild wäre der Cover Export - Import einfacher.

So etwa nach dem Muster ...
Trägerdatei1.Bild1
Trägerdatei1.Bild2
Trägerdatei1.Bild3
8FE157C842D52E48B3DD04F8AC5AD258(0).jpg
8FE157C842D52E48B3DD04F8AC5AD258(1).jpg
8FE157C842D52E48B3DD04F8AC5AD258(2).jpg

oder "natürliche Zählung" ab 1
8FE157C842D52E48B3DD04F8AC5AD258(1).jpg
8FE157C842D52E48B3DD04F8AC5AD258(2).jpg
8FE157C842D52E48B3DD04F8AC5AD258(3).jpg

oder auch so (besser lesbar):
{97FF926C-F737-4F95-8A13-1E3F6D0CB0E8}.1.jpg
{97FF926C-F737-4F95-8A13-1E3F6D0CB0E8}.2.png
{97FF926C-F737-4F95-8A13-1E3F6D0CB0E8}.3.png

Für den Zweck (siehe oben Punkt 1) "Bild Export - externe Bild Bearbeitung - Bild Import" spielt die Lesbarkeit dieser temporären Dateinamen sowieso keine Rolle.
Und wer es braucht, der setzt %ARTIST'---'%ALBUM%'---'%TRACK noch davor, was aber für den folgenden Import unbedeutend ist, weil die GUID Nummer die Referenz ist.

Die Hauptsache ist, dass eine eindeutige Zuordnung von Bild zu Trägerdatei und der symmetrische Export - Import gewährleistet ist.

DD.20110130.1336.CET

Übrigens ...
... kann man sich auch einen GUID Generator besorgen und sich eine Liste mit GUIDs erzeugen.
Mit dem Konverter "Textdatei-Tag" lassen sich die GUID Nummern in ein Tag-Feld "MY_GUID" in die zu bearbeitenden Dateien einfügen und in den Aktionen benutzen.

DD.20110130.1343.CET
Edit.DD.20111210.0848.CET

$validate(filename,to) braucht ein zweites Argument das Anzeigt, mit was ungültige Zeicher ersetzt werden sollen. Also z.B.:
$validate(%ARTIST%---%ALBUM%---%TRACK%,_)
Du kannst das Argument auch leer lassen um ungültige Zeichen eifach zu überspringen (wie es Mp3tag auch ohne die Funktion tut), aber das Komma muss da sein.

Das Problem der eindeutigen Zuordnung sollte doch in mit einer Kombination von %albumartist%-%album%-%track%-%title% in den meisten Fällen gelöst sein. Wenn wirklich nicht, kann man sich auch dadurch behelfen in dem man Teile von %_path% hinzunimmt, dann ist es wirklich eindeutig, nur die Dateinamen könne evtl zu lang werden.
Oder man nimmt gleich nur den Pfad und modifiziert ihn etwas:
$replace(%_path%,:,:\X) kopiert die Komplette Ornderstruktur in einen neuen Ordner mit dem kurzen Namen X direkt im Rootverzeichnis. Dadurch wird der Pfad nur ein Zeichen länger, sollte also kein Problem machen und ist immer eindeutig.
Wenn das immer noch Probleme gibt weil die maximale Pfadlänge bei einigen Dateien bereits ausgentzt wird, kann man bei den meisten Musiksammlungen sicher am Anfang des Pfades noch was weglassen. Wenn die Musik etas in O:\Music liegt einfach die Cover in O:\X exporieren.

Kann man sich bei mehreren Coverbildern in einer Datei nicht mit dem Platzhalter %_cover_type% behelfen? Oder kann der auch identisch sein?

Ich glaube nicht, dass dadurch das völlige Verschwinden von %ARTIST%%ALBUM%%TRACK% erklärt werden kann. Aber ich werde das noch einmal prüfen. Danke für den Hinweis mit $validate Parameter zwei.

Wie gesagt, mit einer eindeutigen Nummer braucht man sich darüber keine Gedanken zu machen.

Hmm, das wird nicht machbar sein, weil man auf den Export von Covern >=2 keinen Einfluss nehmen kann. Mp3tag bietet nur Funktionen für das erste Bild an.

DD.20110130.2222.CET

Es folgt eine Beschreibung für den Arbeitsablauf Mp3tag Cover Bild Export und Import.

1. Technische Voraussetzungen Dienstprogramme

Herunterladen der Dateien:
GUID Generator Installationsdatei "DDGUID.setup.exe"
HTA Benutzerschnittstelle zum GUID Generator
https://onedrive.live.com/?cid=387b58366897...AAKAJNhZDtZRWYI

Mit der Ausführung der Setup Datei "DDGUID.setup.exe" wird eine COM Komponente installiert, die den Zugriff auf den GUID Generator im Microsoft .Net Framework ermöglicht.
Die De-Installation ist vorgesehen, so dass die Installation sauber rückgängig gemacht werden kann.
Der Installationsordner kann frei gewählt werden.

Das HTML/HTA Skript greift auf die installierte DDGUID COM Komponente zu.
Mit Hilfe der HTA Benutzerschnittstelle kann man GUID Nummern erzeugen.

Die GUID Nummer kann in unterschiedlichen Formaten erzeugt werden.
Die erzeugte Liste der GUID Nummern kann zum Clipboard kopiert werden und auch in einer Datei abgelegt werden.

Wenn das alles soweit installiert ist und ausprobiert wurde und funktioniert, dann geht es zur praktischen Anwendung mit Mp3tag.

2. Technische Voraussetzungen Mp3tag Anwendung

Es soll eine gewisse Menge von Musikdateien bearbeitet werden, die jeweils nur ein eingelagertes Cover Bild haben.

Achtung: Die Behandlung von Dateien mit mehreren Cover Bildern wird ein späteres Thema sein!
Keine Gewährleistung, alle Vorgänge gehen auf eigenes Risiko!
Man sollte sich mit der Bedienung von Mp3tag sicher auskennen.

Zum Ausprobieren reichen zwei oder drei Dateien aus.
Wenn alles funktioniert hat wie es soll, und man hat den Arbeitsablauf verstanden, dann kann man sich einer größeren Anzahl von Dateien zuwenden.

Mit dem GUID Generator eine Anzahl von GUID Nummern erzeugen und in eine Textdatei speichern.
Die Anzahl der GUID Nummern soll genauso groß sein wie Anzahl der Dateien, die mit Mp3tag bearbeitet werden sollen.
Beispiel: Für 230 Dateien selektierte Dateien in der Listenansicht von MP3tag müssen 230 GUID Nummern erzeugt werden.

Mit der Benutzeroberfläche "Get GUID" des GUID Generators die GUID Nummern erzeugen und in einer Textdatei speichern, z. B. mit dem Namen "GUID.txt".

"Mp3tag/Konverter/Textdatei-Tag" benutzen.
Dateiname:
Formatstring: %GUID%

Beispiel: 230 GUID Nummern werden bei 230 Musikdateien in das benutzerdefinierte Tag-Feld GUID geschrieben.

Dateien in Mp3tag selektieren
Aktion "Album Cover exportieren" ausführen.
Mp3tag exportiert Bilddateien mit ihrem ursprünglichen Dateityp "jpg", "jpeg", "png".
(Beispiel)
Formatstring für Cover-Dateiname: 'T:\Covers'%GUID%
Duplikate exportieren [_]

Mit dem Explorer kontrollieren, wieviel Bilddateien im Zielordner angekommen sind.
Die Zahl der Bilddateien hängt davon ab, in wieviel Musikdateien eine Bilddatei vorhanden war.

Beispiel: 230 Musikdateien waren selektiert, 115 Bildateien wurden erzeugt.
Im Ordner 'T:\Covers' liegen nun 115 Dateien mit ihren GUID Namen, zum Beispiel:
T:\Covers\1ec50a1224e042f3bf8d7a7a6abbe064.jpg
T:\Covers\2c59aabc5a144e9cb727cd9256370590.jpg
T:\Covers\2d669e8fc7574ce898c13cd9af8fcb5e.jpg

Diese - temporären - Bilddateien können mit anderen Anwendungen (automatisiert) bearbeitet werden, um zum Beispiel die Bildgröße, die Qualität oder den Dateityp zu ändern.
Nach der Bearbeitung sollen diese Dateien wieder in ihre ursprüngliche Trägerdatei eingebettet werden.

Bilddateien in Musikdateien einbetten.
Aktion "Album Cover aus Datei importieren" ausführen.
Mp3tag erlaubt das Einlagern von Bilddateien vom Typ "jpg", "jpeg", "png".
(Beispiel)
Formatstring für Cover-Dateiname: 'T:\Covers'%GUID%'.jpg'
Existierende Cover löschen [X]

Das Einschalten der Option "Existierende Cover löschen" scheint sinnvoll zu sein,
denn so erspart man sich die manuelle Arbeit des vorherigen Entfernens der alten Bilder aus den Musikdateien.

Bevor man das Löschen von existierenden Dateien einschaltet und schließlich ausführt, muss man sich darüber klar sein,
dass damit alle Bilddateien, die in einer Musikdatei eingebettet sind, verloren gehen.

Nach dem Importvorgang wird jede Musikdatei nur das eine Cover Bild enthalten, das zuvor exportiert worden war.
Nach dem erfolgreichen Importieren können die temporären Bilddateien gelöscht werden, sie haben ihren Zweck erfüllt.

Die GUID Nummer kann in der Musikdatei verwahrt bleiben.
Sie ist für "immer und ewig" eindeutig und identifiziert die Datei verwechslungsfrei.

Wenn wirklich kein weiterer Bedarf mehr besteht, kann man die GUID Nummer löschen, also das benutzerdefinierte Tag-Feld GUID entfernen,
Damit gehen aber auch alle Zuordnungen verloren, die man an die jeweilige GUID gekoppelt hat.

Eine verworfene GUID kann nicht rekonstruiert werden.
Neue GUID Nummern lassen sich jederzeit erzeugen.

DD.20110131.0045.CET

Edit. Download Links geändert.
DD.20110201.1245.CET
Edit. Download Link geändert "20110206.GUID.Generator.101.hta"
DD.20110206.2032.CET
Edit. Download Link geändert "20111202.GUID.Generator.103.hta"
DD.20111209.1912.CET
Edit. Download Link geändert "HTA.GUID.Generator"
DD.20150724.1000.CEST