Vorhandene MP3-Sammlung automatisch mit Daten aus eigener Text-Datei ergänzen

Hallo :music: - ich bin hier totales Greenhorn und weiß gar nicht, wo ich im Forum anfangen soll zu suchen. Vielleicht kann mir jemanden einen Wink geben.

Habe meine Charts-CDs als MP3-Files gerippt - nun kam meine bessere Hälfte auf die Idee, wenn wir mal wieder in den Urlaub fahren wäre es doch toll, alle Charts eines bestimmten Jahres anzuhören.

Habe nun viele, viele Stunden im Netz zugebracht und mir in Excel die Charts je Jahr abgespeichert.

Kann MP3Tag meine ganzen MP3 durchsuchen und jeweils anhand der Daten aus einer Textdatei (auf Grundlage von Excel) in ein bestimmtes Tag-Feld der jeweiligen MP3 das Chartsjahr und in ein anderes Tag-Feld die Platzierung zurückschreiben?

Wie gehe ich vor und wie ist der Aufbau meiner Text-Datei?

Vielen DANK für jede Hilfe !!!

Grüße an Alles - Music_ILoveYou

Geht schon irgendwie, aber wahrscheinlich umständlich.

Wenn du diese Chartst komplett als mp3 hast, kannst du alles in excel nach Titel oder Artist sortieren, den Text in eine txt Datei kopieren, dann die mp3s auf gleiche weise sortieren, und dann den Textdatei-Tag Konverter benutzen.
Der genaue Formatstring muss auf die Formatierung der Zeilen angepasst sein.

Wenn du die Charts nicht komplett hast, kannst du den ganzen Text der Excel Dateien in ein beliebiges Hilfs-Tagfeld aller Dateien kopieren. So dass Artist, Titel, Palzierung und Jahr in diesem Text irgendwie als zusammengehörige Einheit zu erkennen ist. Dann kannst du mithilfe der Aktion Tag Felder imporieren und geschickter Anwendung der Funktion $regexp() die Platzierung und das Jahr in beliebige Tagfelder übernehmen, wenn Artist und Titel aus den Excel Tabellen mit den bereits in den Tag Feldern eingetragenen in der Schreibweise exakt übereinstimmen.
Der genaue Formatstring muss auch hier auf die Formatierung des Textes angepasst sein. Aber da kann man ja helfen

Wie der Aufbau deiner Textdatei ist mußt du uns sagen.
Für den ersten von mir beschriebenen Fall ist wichtig:

  • keine Überschriften oder leere Zeilen
  • eine Lied pro Zeile
  • klare Trennzeichen zwischen Artist, Titel, Jahr & Plazierung, die nicht mit Zeichen verwechselt werden können, die auch im Text vorkommen.
  • Titel und Arist müssen vornestehen um die Sorierung in der mp3 in Mp3Tag nachstellen zu können.
    Also z.B:
    Titel 1 | Artist 1 | Plazierung 1 | Jahr 1
    Titel 2 | Artist 2 | Plazierung 2 | Jahr 2
    Titel 3 | Artist 3 | Plazierung 3 | Jahr 3
    ...

Für den zweiten von mir beschriebenen Fall, im Prinzip genauso. Nur könntest du jetzt auch alles in eine Zeile schreiben und die Sortierung ist auch egal.

Wichtig, ist in beiden Fällen die Schreibweise. Wenn kein Aristname zweimal vorkommt, reicht nur der Artist (unwahrscheinlich). Wenn kein Titelname zweimal vorkommt, reicht nur der Titel (glaub ich auch nicht, bestimmt sind in einer solchen Menge irgendwelche Coverversionen mit gleichem Titel oder Lieder mit Titeln wie allgemeinen Titeln "Party" "Love Song" von verschiedenen Künstlern dabei).
Für den ersten Fall reicht es, wenn die Namen aus der Liste mit denen in den bereits bestehenden Tag Feldern (oder Dateinnamen) soweit übereinstimmen, dass sich jeweils die gleiche alphabetische Sortierung ergibt. Wenn also hier hinter dem Titel irgendwas in Klammer steht oder am Ende was anders geschrieben ist, wird das nicht machen.
Für den zweiten Fall muss die Schreibung wie gesagt exakt übereinstimmen. Sonst ist eine Zuordnung von Listeneintrag und mp3 nicht möglich.

Bevor da etwas missverstanden wird oder falsch läuft ...
... der Mp3tag Konverter "Textdatei - Tag" erwartet eine normale Textdatei ...

  • je Zeile nur ein Eintrag für eine Datei
  • in jeder Zeile muss einmal der volle Pfadname zur Datei vorhanden sein, am Anfang der Zeile oder am Ende oder mittendrin, das ist egal, Haupsache immer an der selben Stelle in der Felderliste je Zeile
  • eine Zeile kann so lang sein wie es nötig ist.

Die Feldstruktur der Zeile wird dem Konverter mitgeteilt über den sogenannten Formatstring.
Für den Pfadnamen trägt man den Platzhalter %_path% ein.
Für den Artisten %artist%, für den Titel %title% usw.
Eine Liste mit den gängigen Tag-Feld Namen befindet sich in der Mp3tag Hilfe "Namen und Mapping von ID3v2/WMA/MP4 Tag-Feldern".
Außerdem kann man selbst definierte Tag-Feld Namen verwenden wie z. B. %charts_year%.

Excel könnte eine normale CSV Datei exportieren.
Mp3tag erkennt das CSV Format nicht von selbst.
Der Feldaufbau der Zeile und auch die Trennzeichen müssen in dem Formatstring entsprechend wiedergegeben werden.
Meiner Erfahrung nach müssen die Zeilen in der Importdatei nicht sortiert sein, und die Dateien in der Listenansicht in Mp3tag auch nicht. Die Zuordnung wird gewährleistet über den Pfadnamen der jeweiligen Datei.
Leerzeilen oder überzählige Zeilen werden am Ende Ende des Konvertierungslaufs in einem Protokoll erwähnt.

DD.20110314.1845.CET

Das stimmt nicht ganz. Es geht aber auch ohne Pfad und Dateiname der mp3s. Dann werden die Zeilen einfach der Reihe nach den Dateien zugeordnet.

An meinem Beispiel nochmal, wenn das der Inhalt der Textdatei ist:

Titel 1 | Artist 1 | Plazierung 1 | Jahr 1
Titel 2 | Artist 2 | Plazierung 2 | Jahr 2
Titel 3 | Artist 3 | Plazierung 3 | Jahr 3dann:

:mt_tff: Konverter: Textdatei-Tag

Dateiname:
Formatstring: %title% | %artist% | %charts_placement% | %charts_year%

Das beschreibt dann die Tag Felder der ersten drei markierten Dateien in der Dateiliste.

Dass es mit %_path% und unsortiert auch geht, wußte ich gar nicht. Das ist aber dann wohl nur nutzbar, wenn man die Datei selbst exportiert, sonst wird man ja den Dateipfad nicht in einer Textdatei haben.

Das stimmt schon ... deshalb ist die Verwendung von %_path% ja auch die sicherste Methode, die Zuordnung zwischen den (Excel-) Exportdaten und den Zieldateien zu gewährleisten.

Ich habe es gerade eben noch einmal verifiziert.
Excel hat für 9 Dateien eine CSV Datei erzeugt.
In Mp3tag wurden 48 Dateien markiert und der Konverter "Textdatei - Tag" angewendet.
Bereits in der Vorschau war die Sache klar.
Mp3tag hat genau die 9 Dateien aus den 48 Dateien erkannt, die zum Import gehören.
Der tatsächliche Import lief dementsprechend fehlerfrei.

In der Vorschau wurden die überzähligen Dateien auf der "Mp3tag Seite" z. B. so vermerkt:

Kein passender Eintrag für Datei "O:\TEST\Folder BBB\Pretty Hate Machine.mp3" gefunden.

Im Protokoll nach dem Import wurden die überzähligen Dateien genauso vermerkt.
Die positiv importierten Dateien wurden pauschal vermerkt mit dem Text:

Importierte Tags aus "O:\TEST\Mp3tag.Export.semicolon.csv" in 9 von 48 Dateien gespeichert.

Die Frage von OP 'music_ily' ...

Kann MP3Tag meine ganzen MP3 durchsuchen und jeweils anhand der Daten aus einer Textdatei (auf Grundlage von Excel) in ein bestimmtes Tag-Feld der jeweiligen MP3 das Chartsjahr und in ein anderes Tag-Feld die Platzierung zurückschreiben?

... geht ja wohl eher in die Richtung "lookup-table" und ob Mp3tag anhand eines Schlüssels einen Wert heraussuchen kann aus einer externen Datei.

Eine solche Methode ist in Mp3tag nicht vorgesehen.
Aber, pone, wie du schon geschrieben hast, und wie ich es schon ein paar Mal in den vergangenen Jahren hier im Forum ausgebreitet habe, kann man sich eine solche Funktionalität zusammenbauen, z. B. über den Import der "Schlüssel=Wert Datenbank" in ein temporäres Tag-Feld je Datei mit der Aktion "Text-Datei importieren", das dann mit Hilfe einer passenden Suchfunktion ausgewertet werden kann (z. B. mit $regexp() oder anders).

Je nachdem wieviel Arbeit man sich zumuten möchte (die Textbearbeitung in Excel oder Word oder Notepad oder die Programmierarbeit in Mp3tag) kann man schon irgendwie zu einer Lösung der Aufgabe kommen.

In diesem Fall scheint der einfachste Weg zu sein die (manuelle) Vorbereitung der Importdatei für den Konverter "Textdatei-Tag".
Also je Musikdatei eine Textzeile anlegen mit den Werten, die importiert werden sollen und mit vollem Pfadnamen.

DD.20110314.2120.CET

Das stimmt nicht ganz. Zwar funktioniert deine Methode einwandfrei und du hast auch recht das das die sicherste Zuordnungsmethode ist.
Was aber nicht stimmt ist, dass in jeder Zeile einmal der volle Pfadname zur Datei vorhanden sein muss. Wenn er nicht drin ist, werden die Datein wie von mir beschrieben zugeordnet.
Und das ist ja, wenn man den Luxus hat die Dateien sowohl in Excel als auch in Mp3Tag nach Spalten zu sortieren, auch nicht schlecht. Vor allem, wenn man nicht den Luxus hat, die Dateinamen schon in der Datei drinnen zu haben.

Aber man könnte auch die Dateinamen zuvor formatieren, etwa %artist% - %title%.mp3. Dann könnte man diese auch wieder mit Excel logisch voraussagen und einbinden. Vorausgesetzt natürlich wieder exakt gleiche Schreibweise.
Dann ersparrt man sich die (etwas) komplizierten $regexp() Funktionen bei Tag-Felder importieren, wie oben für das zweite Szenario (Chartslisten nicht komplett als mp3) beschrieben.

Du gehst davon aus, dass auf beiden Seiten (Excel - Mp3tag) haargenau dieselbe Sortiermethode angewendet wird.
Darauf kann man sich aber auf keinen Fall verlassen!!!!

DD.20110314.2125.CET

Stimmt. Sollte man auch checken. Zwar kann man in beiden Programmen Spalten alphabetisch sortieren und ein zweite Spalte als Ordnung zweiter Klasse benutzen, wenn in der ersten Spalte gleiche Werte vorkommen. Aber vielleicht machen Sonderzeichen Probleme die unterschiedlich behandelt werden.

@ music_ily:
wir warten auf Rückmeldung, sind schon ganz wild darauf dein "Problem" zu lösen

hallo pone & DetlevD

schon mal herzlichen Dank :w00t:

Jetzt kapiere ich mal die Herangehensweise - hatte es ganz anders verstanden.

Hab am WE wieder Zugriff auf meinen Media-PC zuhause, aber dann werde ich testen, testen, testen ... bin schon total gespannt und kann es kaum erwarten.

Schreib nach erfolgreichem oder (von mir) verbockten Test einen Post :wink:

Hallo
Die Arbeit mit einem Export als *.csv hat mir die Arbeit bezüglich meiner
doppelten Sammlung erheblich vereinfacht.
So konnte ich in ein zuvor generiertes neues Spaltenfeld zusätzliche Einträge
die in Excel neu aufgenommen worden sind, in die zu bearbeiteten Dateien
über %_folderpath%, welches als einziges jeweils nur einmal vorkommt, hinzufügen.
Dateien die nicht angetastet wurden in meiner Excel-db blieben auch unter mp3tag unangetastet.
Hilfsinformationen wie die _md5Audio bitrate jahr ect. kamen in ein Feld (Zeile/Excel) pro Datei.
Die wiederum unter Excel per Filterfunktion heraus lesbar sind.
Mein Vorgehen ist ja in einem früheren Thread behandelt.

Das Wochenende ist vorbei und ich bekomme es einfach nicht hin, irgendwo hab ich den Denkfehler, aber ich weiß nicht wo.

Meine Vorbereitung:

  1. habe ich alle meine MP3-Dateien in ein Verzeichnis kopiert
  2. alle Dateinamen sind aufgebaut aus "Artist - Titel.mp3" zB "2 Unlimited - The real thing.mp3"
  3. habe mir eine Textdatei erstellt, in der folgende Einträge (jeweils getrennt durch ein Semikolon ) aufgeführt sind (hab ich so herauskopiert)
  4. Zeile %_filename% ; %artist% ; %title% ; %charts_placement% ; %charts_year%
  5. Zeile 2 Unlimited - The real thing.mp3;2 Unlimited;The real thing;1994;4

Mein Vorgehen in MP3Tag:

  1. Datei - Verzeichnis hinzufügen
  2. alle MP3 im Hauptfenster von MP3Tag markieren
  3. Menu Konverter - Textdatei_Tag auswählen
  4. die oben genannte csv- oder txt-Datei (hab beides ausprobiert) auswählen
  5. bei Formatstring gebe ich nachfolgende Werte ein (hab ich so rauskopiert)
    %_filename% ; %artist% ; %title% ; %charts_placement% ; %charts_year%
    hab hier auch mal testweise "|" anstatt ";" verwendet

egal, was ich anstelle - er kann keine Daten abgleichen.

gibt es noch Hoffnung :w00t:

Wie meinst du das bei "meine Vorbereitung, 3., 1.Zeile" mit den Platzhaltern. Die Platzhalter gehören nicht in die Textdatei. Da sollten alle Zeilen so aussehen wie deinen zweite Zeile.

Die Zeile
2 Unlimited - The real thing.mp3;2 Unlimited;The real thing;1994;4
enspricht
%_filename%;%artist%;%title%;%charts_placement%;%charts_year%
Du hast da noch Leerzeichen um die Semikolons stehen. Die müssen weg.

%_filename% in der Textdatei ist zwecklos. Der Dateiname kann mit dem Textdatei-Tag Konverter nicht neu geschrieben werden und das Zuorndnen der Dateien funktioniert nur mit dem Dateiname auch nicht.
Zum zuordnen der Zeilen brauchst du den vollen %_path%, also, z.B.: C:\OrdnerXYZ\2 Unlimited - The real thing.mp3
Wenn du wie du beschreibst alle Dateinen in einem Verzeichnis hast, müsste es mit Excel wohl einfach sein, in der Textdatei aus %_filename% %_path% zu machen. Du musst ja nur immer den gleichen Pfad davor anhängen.

Ich frage mich nur, wie du den jeweiligen Dateiname in Excel bekommen hast? Wahrscheinlich einfach durch kombinieren der dortigen Künstler und Titel Namen. Das könnte ein Problem geben, wenn bei den Dateinamen dazu unterschiedliche Schreibweisen auftreten. Dann können die Dateien nicht zugeordnet werden. z.B.:

2 Unlimited
2Unlimited
Two Unlimited

Real Thing
The Real Thing

Solche Unterschiede in der Schreibweise kommen nach meiner Erfahrung relativ oft vor, wenn die Namen nicht aus der selben Quelle stammen.
Eventuell kannst du das umgehen, wenn du wie von mir weiter oben beschrieben die Dateien alpahbetisch sortierst und statt auf automatische Zuordnung per Dateinamen auf die Zuordnung durch die Reihenfolge setzt. Dann landen "2 Unlimited" und "2Unlimited" relative wahrscheinlich auf dem selben Platz, "Two Unlimited" würde deine Liste aber wohl durcheinander bringen.
Da hilft dann wohl nur, vor dem Import die Liste genau mit der Dateiliste zu vergleichen und gegebenfalls die Zeilen in der Liste zurecht schieben.
Wenn deine mp3s nicht die vollständig Liste abbilden, hast du natürlich das gleiche Problem, dann müsstest du bei unterschiedlicher Schreibweise auch noch die überflüssigen Zeilen löschen.

Ja genau, für Mp3tag ist jedes Zeichen bedeutsam, und an welchem Platz es sich befindet.

Für die Semikolon separierte Ausgabetextzeile (SSV) ...
2 Unlimited;The Real Thing;1994;4;C:\Meine Musik\Pop 1994\2 Unlimited - The real thing.mp3
... wäre das die passende Zeilenmaske in Mp3tag ...
%artist%;%title%;%charts_year%;%charts_placement%;%_path%

Eine List mit dem kompletten Pfadnamen jeder Musikdatei kann 'music_ily' einfach mit Mp3tag erzeugen.
Alle Dateien in Mp3tag einladen und ein Exportskript laufen lassen, dass z. B. nur den Inhalt von %_path% ausgibt.

Die Zeilen dieser Export Textdatei kann man, so man will, z. B. via Clipboard in die Excel Tabelle hineinkopieren - oder anders herum - man nimmt die Datei mit den Dateipfaden als Basisspalte in einem Excel Arbeitsblatt und kopiert die Chartdaten passend in die Nachbarspalten.

DD.20110323.0500.CET

Dann hat man ja wieder keine automatische Zuordnung.

Missverständnis ?
Die Zuordnung erfolgt via Platzhalter %_path% im Formatstring auf der Seite von Mp3tag beim Einladen der CSV/SSV/TXT-Datei und dementsprechend in der Eingabedatei enthaltenen kompletten Dateipfad. So wie es in diesem Thread schon beschrieben worden ist.

DD.20110323.1155.CET

Schon klar. Ich meinte die Zuordnung in Excel. Dort müssen die Chart Daten und die Dateiliste ja auch irgendwie richtig zusammengebracht werden. Und das geht wohl auch wieder nur über alphabetische Sortierung, die dann die selben Schwachstellen bei unterschiedlichen Schreibweisen hat.
Vorteil ist alledings, dass man Fehler in der Sortierung hier schnell entdecken und korrigieren kann. Insofern ist dein Vorschlag wohl die Beste Methode.

:slight_smile: es hat dank eurer sehr guten Unterstützung super funktioniert.

Bis auf eine ganz kleine Menge an Liedern wurde alles sauber mit Daten befüllt, dort sind in den Titel Sonderzeichen, das mag MP3Tag wohl nicht so. Werde mir das am WE anschauen und dann klappt das bestimmt auch noch.

Das Zusammenspiel Excel - csv - MP3Tag kann ich nur empfehlen;

noch mal herzlichen Danke!!!