Prüfen ob gleichnamige jpg-Datei vorhanden ist.

Hallo MP3Tag-Leute,

habe folgendes Problem:
ich möchte eine Aktion erstellen, die prüft, ob ein gleichnamiges Cover vorhanden ist.
Das Ergebnis(Ja/Nein) soll in einem Feld vermerkt werden.

Habe schon einiges ausprobiert aber ich stolpere über die Syntax.

Meine Ordnerstruktur der MP3 und der Cover:
e:\MP3Titel\ ABBA - SOS.mp3 ... ' hier befinden sich alle meine mp3-Titel
e:\MP3Cover\ABBA - SOS.jpg ... ' hier befinden sind alle Original Cover

Ein Taggen kommt nicht In Frage, da ich die Original-Cover zum Anzeigen verwende.
Ja, ich weiß, man kann die Cover kleinrechnen, aber das kommt nicht in Frage.

PS. ein paar Beispiele mehr in der Online-Hilfe würden mir weiterhelfen.
Ich weiß, das im MP3Tag eine Menge Dinge versteckt sind die erst sichtbar gemacht werden müssen.

Gruß poldie1955, ein eifriger MP3Tagger.

Was soll "gleichnamig" sein?
Cover-Datei/-pfadname und Cover-Datei/-pfadname?
Covername und Dateiname?
Covername und Albumname?
Covername und Artistname?

Mit welcher Aktion könnte man das machen?

DD.20101221.1348.CET

Glaub nicht dass das möglich ist.

Du könntest aber ohne Probleme die Cover importieren wenn sie regelmäßige Dateinnamen haben. Dann könntest du mit dem auch in der Dateiansicht mit %_covers% anzeigen lassen ob ein Cover vorhanden ist oder nicht.
Was meinst du mit Original-Cover? Einen großformatigen Scan? Ist doch egal, wenn du eh ein Cover für jede Datei einzeln speicherst, kannst du es doch auch im Tag abspeichern. Braucht auch nicht mehr Speicherplatz und kleingerechnet wird dabei nichts.

Ansonsten könntest du auch einfach Cover und Mp3s in einen Ornder schmeißen wenn deine Ordnerstruktur wirklich so einfach ist wie gezeigt. Im Windowsexplorer nach Dateityp sortieren, alle Cover oder alle mp3s markieren und dann nach Name sortieren. Dann müsste sich für alle Dateien mit Cover ein regelmäßiges Bild ergeben, immer eine Zeile markiert, die nächste nicht... Die Dateien die da ohne Cover aus der Reihe tanzen müßten sich dann auf ganz schnell entdecken lassen.

Ansonsten geht's mir wie Detlev. An welche Aktion hast du gedacht? Wo hast du mit der Syntax schon einiges ausprobiert?

Zur weiteren Erklärung:

ich sammle Cover, hauptsächlich von Singles(hochwertige Scans).
Wenn ich TAGs bearbeite, möchte ich schnell sehen(im TAG-Editor), ob zu einem Titel ein gleichnamiges Cover vorhanden ist.

Songs und Cover liegen in jeweils eigenen Ordnern.

Beispiel:

im Ordner e:\MP3Titel\ befindet sich die MP3-Datei
ABBA - SOS.mp3

im Ordner e:\MP3Cover\ befindet sich das entprechende Cover
ABBA - SOS.jpg

Mit der if2-Abfrage habe ich es schon versucht aber ohne Ergebnis.
Die if2-Abfrage soll zurückmelden ob die jpg Datei existiert oder nicht.

Mein Versuch:
if2('e:\MP3Titel'%_FILENAME%, 'e:\MP3Cover'%_FILENAME%'.jpg')
%_FILENAME% liefert ja den Dateinamen ohne Pfad und ohne Erweiterung.

Die Dateien(Songs und Cover) möchte ich trotzdem nicht mischen, da auch noch Alben verwaltet werden.

Gruß poldie1955.

Und wo hast du den $if2 string eingegeben? In der Spaltenansicht? Ich nehme an, du hast das führende "$" nur hier vergessen?

$if2 überprüft ja ob ein Wert vorhanden ist und gibt diesen dann auch als Wert wieder aus. Nur wenn der erste nicht vorhanden ist. Wird der zweiten Wert ausgegeben. Du würdest also immer den ersten Wert erhalten, weil 'e:\MP3Titel'%_FILENAME% ja immer vorhanden ist.
ABER auch wenn du das ganze umdrehst kommst du nicht weiter. Du kannst nämlich immer nur Werte innerhalb der Datei und des Pfades der Audiodatei abfragen, nicht ob ein anderer Pfad, vorhanden ist oder nicht.
$if2('e:\MP3Titel'%_FILENAME%,...) prüft auch nur ob die verwendeten Platzhalter, also %_FILENAME% vorhanden sind, nicht ob die Datei auch auf diesem Pfad liegt. Das ginge zwar mit
$if($eql(e:\MP3Titel,%_folderpath%),yes,no)
hilft dir aber auch nicht beim Überprüfen der .jpg Dateien weiter. Es kann eben nur der Pfad der Audiodatei überprüft werden.

Vielleicht ist das kleinkariert, aber wenn du einen speziellen Dateiinhalt (hier MP3 tag) mit einem Dateinamen vergleichst, ist das kein Taggen mehr. Daher auch die Probleme.
Die zu vergleichenden Daten müssten vom selben Verwaltungsprogramm beurteilt werden. Und MP3tag kümmert sich nun mal nur um die MP3s und nicht um Bilder.
Erst wenn du die Bilder in einem Tag unterbringst. kann MP3tag dir dabei helfen.
Oder du nimmst das Dateisystem und lässt Dir eine Liste der Dateinamen erzeugen, um dann per Hand oder mit einem Vergleichswerkzeug wie xdiff zu sehen, wo die Unterschiede in den Listen sind.

Das verstehe ich nicht - wieso müssen die Bilder kleingerechnet werden?
Aber egal - für den Vergleichsprozess ist meiner Ansicht nach die Größe der Bild-Dateien nebensächlich. Nur iTunes will nicht mehr als 400*400 pixel - aber wer nimmt denn schon iTunes?!
Also wäre ein Import der Bilddateien in das Albumart-Tag und ein anschließendes Filtern, wo das nicht geklappt hat, durchaus möglich.
Anschließend kannst Du ja die Bilder wieder aus den MP3-Dateien löschen. Geht auch sehr bequem mit MP3tag.

Nur mal so: wie sieht denn eigentlich diese Abspiellandschaft aus, bei der beim Abspielen aus einem x-beliebigen Verzeichnis Bilddateien genommen werden, um sie beim Abspielen anzuzeigen?
hast Du schon mal die einschlägigen Abspieler versucht, ob die nicht doch auch große Albumarts zeigen können?

Also, ein bisschen mehr zu meiner Sache:

zum Abspielen verwende ich eine selbstprogrammierte MP3-Musikbox(Visual Basic).
Da ist es einfach, die entsprechende, hochaufgelösten Cover anzuzeigen.

Zudem ist meine Coververwaltung auch auf Alben ausgerichtet:
Zuest zeigt die Musikbox eine Single-Datei an.
Ist Diese nicht vorhanden, wird das ALBUM-tag ausgelesen und eine Album-Datei angezeigt.

Die Gründe für das Auslagern in externe Cover-Dateien:

  • lesen und schreiben von MP3s(mit Cover) dauert wesentlich länger.
  • selbst bei kleinenTAG-Änderungen muß die gesamte MP3 neugeschrieben werden(Padding Größe).
  • bei hochaufgelösten Covern(2000x2000) wird die MP3-Datei entsprechend größer
  • Die Tags(id3v2.3) stehen ja am Anfang, und der Musikstart verzögert sich.
  • Die Coververwaltung, so wie ich sie mit meiner Musikbox benutze, ist mit den TAGs nicht möglich.
  • Das Auslesen und Anzeigen von jpg-Covern ist gar nicht so einfach. Hatte hier im Forum diesbezüglich schon Fragen gestellt.

Mein Gedanke war ja, wenn MP3Tag Cover Im- und Exportiert, mittels Aktion , so müsste es auch möglich sein, zu Prüfen, ob eine Cover-Datei vorhanden ist.
Den Wert dieses Ergebnisses dann in eine temporäre Spalte einzutragen. Oder später eine Aktion programmieren die diese Prüfung nur im Bedarfsfall ausführt.

MP3Tag besitzt ja eine mächtige Script-Sprache, die aber nicht ganz einfach zu durschauen ist.

Ist jetzt ein bisschen mehr Text geworden.

Gruß poldie1955, und Danke ans schnell reagierende Forum.

Deine geplante Überprüfung der basiert ja rein auf die Dateinamen wenn ich das richtig verstehe, nicht auf die Tags.
Wahrscheinlich kannst du dir auch damit behelfen, vom Musik und vom Cover Ordner Dateilisten zu erstellen (z.B. hiermit: http://www.karenware.com/powertools/ptdirprn.asp , aber ich glaub da gibt es viele Werkzeuge), dies Listen dann in eine Exceltabelle einfügen so dass in jeder Zeile eine Datei und in jeder Spalte ein Datei oder Ordnername steht. Wenn du dann alle Dateinamen in der selben Spalte hast kannst du das bequem und übersichtlich sortieren, auch nach Ordnernamen bei Bedarf.
Und wahrscheinlich gibt es bei excel auch noch irgendwelche Befehle, Zeilen mit gleichen Dateinamen zusammenzufügen und dann jene zu highlighten, die als einzeilige übriggeblieben sind.

Ansonsten bietet sich vielleicht noch mit der Export Funktion von Mp3Tag eine Möglichkeit. Ich kenn mich da nicht all zu gut aus. Aber aus den Beispielen weiß ich dass es einige Exportskripte gibt, die für jedes Album das Cover anzeigen die dabei auf im Skript definierte Dateinamen wie folder.jpg zurückgreifen. Diese Skripts müßten sich auch so verändern lassen, dass sie ein Cover für jede Datei anzeigen und dabei auf einen Pfad mit Platzhalter wie %_filename% zurückgreifen. Als Output erhältst du dann zu Beispiel ein html Datei wo du bei fehlenden Coverbilder immer ein browserabhängige Anzeige siehst, dass ein Blid nicht gefunden wird.

Hmm, ja das wäre eine schnell zu konstruierende Möglichkeit der Visualisierung.
Aber unpraktisch bei einer großen Menge von Bildreferenzen in einer HTML Datei.

Man könnte eine VB Skript Datei mit Mp3tag Export erzeugen, an die man z. B. den Wert %_path% oder andere sinnvolle Tagwerte übergibt. Danach das VB Skript laufen lassen, und schließlich das Ergebnis (Bild ist da / Bild ist nicht da) mit Mp3tag je Datei in ein Benutzer-Tagfeld importieren, was man anzeigen kann oder zum Sortieren oder für den Filter benutzen kann.

Nur so 'mal als Anregung wie das aussehen könnte ...
How to create a shortcut file to a physical file?

Hier in diesem Fall wäre es vermutlich nicht so umfangreich.

DD.20101222.1250.CET
Edit.DD.20101222.1841.CET

Dazu fallen mir diese Dinge ein:
a: wenn die dateinamen der Bilder wirklich so schön aus tags zusammenzusetzen gehen, dann ist es auch möglich, alle diese Bilder in die Tags zu importieren.
Anschließend kannst du alle Dateien filtern, die mit dieser Aktion kein Bild abbekommen haben.
Diesen Dateien kannst Du per MP3tag ein Bild verpassen, und dann sämtliche Bilder wieder mit einer einzigen Aktion exportieren, sogar mit einem komplexen Namen und auch in die von dir favorisierte Verzeichnisstruktur, wenn die maske für den Dateinamen der Bilddatei absolute Pfadangaben enthält.
Und daran anschließend kannst du wieder alle Cover aus den Dateien löschen.

b: Wenn das was selbstprogrammiertes ist, kannst du dann nicht mal eben alle Musikdateien einlesen (lassen) und den Check laufen lassen, welches Bild gezeigt werden soll? Und wenn der Check merkt, dass da kein Bild ist, müsste es doch ein leichtes sein, den Dateinamen oder Pfad oder was auch immer in einem Protokoll abzulegen.

Hab ich ja programmiert, aus der Not heraus(ohne Tagbearbeitung).
Man muss tierisch aufpassen beim Umbennenen von MP3 oder Cover damit sie sychron bleiben. Die TAG-Bearbeitung überlasse ich Profis. Im MP3Tag steckt sehr viel Programmieraufwand, das habe ich gemerkt, als ich die Cover selber ausgelesen und angezeigt habe(dickes Lob an Florian).

Eine Aktion dafür wäre sehr schön gewesen, alles aus einem Guß.

Wie ich vorgehe:

  • Ein schwung Schallplatten mit Cover liegt neu vor mir.
  • Nachsehen, ob schon ein hochwertiger Scan vorliegt.
  • Entsprechende MP3-Datei taggen(Schreibfehler korigieren)
  • Fehlende Daten ersetzen (Album, Erscheinungsjahr usw).

Dieser Post ist in keinster Weise eine Kritik an MP3Tag.
Bin mit meinem Wunschgedanken ja auch ein wenig exotisch. :rolleyes:

Gruß poldie1955.

Ich hab was neues entdeckt:

Extras > Optionen > Tags:
Bei "Einlesen auf folgende Dateitypen beschrängen" *.jpg; hinzufügen (und evtl. weitere Bildformate).
Dann werden die .jpg Dateien auch in der Dateiansicht vom Mp3Tag angezeigt.

Jetzt alle zu prüfenden mp3 Dateien mit den dazugehörigen jpg Dateien einlesen. Dann in zwei Schritten sortieren, erst so, dass alle jpg oben und alle mp3 unten stehen und dann nochmal nach Dateiname. Dann stehen die gleichen Namen immer beieinander und die jpg jeweils oben.
Dann eines der folgenden Export Skripte anwenden.

$loop(%_filename%,1)$if($eql(%_extension%,mp3),%_filename%,)
$loopend()    $loop(%_filename%,1)$if($eql(%_extension%,mp3),%_path%,)
$loopend()    $loop(%_filename%,1)$if($eql(%_extension%,mp3),nein | %_filename%,ja   | %_filename%)
$loopend()    $loop(%_filename%,1)$if($eql(%_extension%,mp3),nein | %_path%,ja   | %_path%)
$loopend()

Die ersten zwei zeigen jeweils nur die mp3s ohne Cover an, die letzten zwei alle mit einem Vermerk ob mit oder ohne Cover.

Ist jetzt nur auf mp3 Dateien beschränkt. Bei anderen Formaten müßte mann das Skript noch dementsprechend erweitern.
Ausserdem ist das vierte Skript nicht perfekt, da wird bei den mp3s mit Cover der Pfad zum jpg angezeigt statt zur mp3.