Tag - Dateiname mit Slash in Interpret/Album Interpret

Hallo zusammen,
ich versuche gerade ein Problem zu lösen.
Und zwar fülle ich meine Backups mit Picard und mache dann den Feinschliff in Mp3tag.
Nun ist das Problem, dass ich für meinen Mediaplayer die Künstler mit / trennen muss/möchte,
um Duplikate zu vermeiden. In den Tags Funktioniert das alles richtig,
ich scheitere aktuell nur noch an der Umbenennen Funktion.
Mein String für Alben z.B. sieht aktuell so aus:

M:\Music\%genre%\$replace($left(%albumartist%,1),1,#,2,#,3,#,4,#,5,#,6,#,7,#,8,#,9,#,С,C,Ć,C,$,#,0,#,*,#)\\$replace(%albumartist%\[(%year%) %album%][\CD%discnumber%][\%track%. ][$left(%artist%,150) - %title%],:, -,?,,/, -,;, & )

Nun würde ich gerne bei Artist sowie Albumartist die Künstler beim umbenennen trennen mit ", "
Also z.B. so

Tag Albumartist: Söhne Mannheims/Xavier Naidoo
soll zu Filename: Söhne Mannheims, Xavier Naidoo
werden.
Doch irgendwie bekomme ich es nicht hin mit $replace.
Entweder, er Spuckt mir nur noch den ersten Artist aus als Filename und sonst nichts,
oder er ignoriert mein $replace einfach.
Die aktuelle Ausgabe wäre folgendes:
"Music\Pop\S\Söhne Mannheims -Xavier Naidoo(2008) Wettsingen in Schwetzingen\CD2\10. Söhne Mannheims - Geh davon aus"

Er spuckt mir also das "/" als " -" aus, und ich hätte gerne einfach ", "
Der String den ich oben gepostet habe, beinhaltet schon einige Anpassungen, die ich so bräuchte wegen Sonderzeichen, Ordnerstruktur, Zeichenbegrenzung etc.
Ist mein Vorhaben überhaupt im String anwendbar, oder bräuchte ich einen anderen weg?
Wäre über jeden Tipp dankbar

Vermutlich liegt der Fehler irgendwo in diesem Bereich.
Du versuchst einen Doppelpunkt mit einem Leerschlag Bindestrich zu ersetzen,
dann das Fragezeichen durch nichts,
dann den Slash mit einem Leerschlag Bindestrich,
dann den Strichpunkt mit einem Leerschlag & Leerschlag

Wenn Du den Slash mit einem Komma ersetzen möchtest, dann müsstest das auch so angeben, z.b. mit
,/,',',

Ich vermute, dass du ein multi-value-Feld hast, mit 2x \\, Stimmt das?
Dann kannst du dieses Zeichen nicht ersetzen, sondern müsstest das Feld mit $meta_sep(artist,', ') behandeln

Oh man... guten morgen :smiley:
Ich hab vor lauter Umstellung vergessen den letzten Part aus dem String zu packen...
Nun geht es. Hab mich mit dem letzten Abschnitt gar nicht mehr beschäftigt weil ich vor lauter Umstellung dachte, das Ende muss so bleiben damit der Rest aufgeht...
Schluss bearbeitet und zack geht es.
Vielen lieben dank

Falls das in der Zukunft jemand brauchen sollte, das Endergebnis sieht so aus:

M:\Music\%genre%\$replace($left(%albumartist%,1),1,#,2,#,3,#,4,#,5,#,6,#,7,#,8,#,9,#,С,C,Ć,C,$,#,0,#,*,#)\\$replace(%albumartist%\[(%year%) %album%][\CD%discnumber%][\%track%. ][$left(%artist%,150) - %title%],/,',' ,)

Das wird dann so aber keine weitere ungültige Zeichen im Dateinamen mehr ersetzen.
Also z.B. Doppelpunkte, Fragezeichen und andere (mindestens für Windows nicht gültige) Zeichen die durchaus in den aufgeführten Tags vorkommen können.

Nur mal ein Kommentar: die eckigen Klammern wirken als "wenn"-Funktion, so dass der Inhalt der eckigen Klammer nur ausgegeben wird, "wenn" es auch Inhalt in den eckigen Klammern gibt, der aus Tag-Felddaten kommt.
So wie ich den ganzen String lese, ist nur klar, dass es GENRE und den 1. Buchstaben von ALBUMARTIST geben wird - der Rest ist dann dem Zufall anheim gestellt, weil YEAR, ALBUM, DISCNUMBER, TRACK, ARTIST und TITLE mal da sein können und mal nicht.

Auch verstehe ich den Sinn des doppelten Rückwärtsschrägers

nicht. Meiner Ansicht nach gibt es eine leeren Verzeichnisse - dieser Ausdruck müsste also mindestens ingnoriert, besser korrigiert werden.
Vielleicht müsste da doch noch mal jemand drübergucken.

Ich glaube, dies könntest zu verkürzen zu:
$if($grtr($ord(%artist%),64),$left(%artist%,1),#)

Servus und danke für deine Antwort. Konnte die letzte Zeit leider nicht Antworten.
Nach PC Crash etc. dachte ich, ich gehe das ganze noch mal neu an um es auch besser zu verstehen, denn wie man hier sieht ist an meinem String wohl einiges falsch (alles irgendwie zusammengesucht...)

Ich möchte das ganze nun so Strukturiert haben:
(Wichtig! Die Trennung bei %artist% sowie %albumartist% ist durch "/", diese brauche ich für Emby um nicht Künstler XY 20 mal zu haben)

  1. Zielhauptordner >
  2. Genre >
  3. Albumartist nur 1. Buchstabe >
    (Zahlen in # und "Sonderzeichen" z.B. von Ć zu C)
  4. Albumartist nur den ersten, falls mehrere vorhanden sind (getrennt durch "/" ) z.B. Klaus/Laura,
    (Artist 1\Collabos\Artist 2, 3 & 4) und Punkt 5 Ignorieren (ich nehme an das ist nicht so möglich und ich bräuchte 2. Strings, oder? >
  5. Typ (MUSICBRAINZ_ALBUMTYPE) >
  6. (Jahr) >
  7. Albumname >
  8. falls vorhanden CD1, CD2 etc.
  9. Titelnummer >
  10. Artist (falls mehrere durch ", " trennen) z.B. Klaus/Laura zu Klaus, Laura >
    (falls mehr als 1 aber nicht mehr als 2 dann zu "Klaus & Laura"
  11. Titelname >
    Und zum Schluss halt zwecks Windows Illegale Zeichen entfernen bzw. ersetzen und die Zeichenbegrenzung zwecks zu langer Ordner/Dateinamen/Struktur.
    Die Sonderzeichen sollten nur im Pfad/Dateinamen ersetzt werden sofern möglich und nicht auch in den Tags Ansich.

Vieles bekomme ich schon hin, allerdings hackt es an Punkt 3. 4. 10. und den Sonderzeichen.
Zu 3. dort hatte ich ja folgendes:

$replace($left(%albumartist%,1),1,#,2,#,3,#,4,#,5,#,6,#,7,#,8,#,9,#,С,C,Ć,C,$,#,0,#,*,#)

Das Funktionierte soweit ganz gut, da aktuell alle "Sonderzeichen" Abgedeckt sind, nur wer weiß was die Zukunft bringt... (Anpassen wäre ja möglich)
Nun Dachte ich, ich versuche deine gekürzte Version

$if($grtr($ord(%artist%),64),$left(%artist%,1),#)

Dies musste ich natürlich anpassen zu %albumartist%
Funktioniert auch teils, nur die Sonderzeichen machen irgendwie Probleme
z.B. das "Ć" das landet nicht in "C" sondern eben in "Ć", kann man da was machen?
Sonst würde ich einfach beim alten bleiben. Ist zwar nicht so übersichtlich, aber bevor ich hier zu viele nerven anderer Koste lieber so :wink:
Was allerdings komisch ist, das "$" landet im "#" Ordner, da scheint es zu funktionieren.

Zu 4.
Da meine %albumartists% mit "/" getrennt sind, müsste es doch möglich sein, nur den ersten zu nehmen, oder? Grund hierfür, ich möchte etwas weniger Ordner bei den Künstlern und z.B. feat. Alben in einen extra Ordner. z.B. Klaus/Laura soll in den Ordner \Klaus\Collabos\mit Laura (hier dann der 2 oder falls mehr, die restlichen Künstler... Hier weiß ich erstens nicht wie ich die durch "/" getrennten Künstler quasi teilen kann. Ich bräuchte erst nur den 1. Künstler sofern mehrere vorhanden, dann ein "mit " im Unterordner Collabos vor dem 2. Künstler und falls noch mehr Künstler alle weiteren mit ", " getrennt und der letzte mit einem " & " getrennt.
So habe ich zwar Unterordner im Artist Ordner, aber dafür weniger in den A,B,C Künstler Ordnern.
Hoffe hab das so brauchbar erklärt^^

Zu 10.
Wie ich Künstler trenne, habe ich ja hier zum Glück schon gelernt, nun ist es allerdings aktuell so, das alle Künstler mit ", " getrennt werden, das ist soweit auch ok. Nur hätte ich gerne, sofern möglich das alle Künstler mit ", " getrennt werden und der letzte mit " & "
z.B. Klaus/Laura zu Klaus & Laura oder Klaus/Laura/Peter zu Klaus, Laura & Peter

Aktuell sieht das ganze so aus:

M:\Music%genre%$replace($left(%albumartist%,1),1,#,2,#,3,#,4,#,5,#,6,#,7,#,8,#,9,#,С,C,Ć,C,$,#,0,#,*,#)\$replace(%albumartist%%MUSICBRAINZ_ALBUMTYPE%[(%year%) %album%][\CD%discnumber%][%track%. ][$left(%artist%,150) - %title%],/,',' , )

  1. M:\Music\
  2. %genre%\
  3. $replace($left(%albumartist%,1),1,#,2,#,3,#,4,#,5,#,6,#,7,#,8,#,9,#,С,C,Ć,C,$,#,0,#,*,#)\
  4. da bin ich ratlos, weiß keinen begriff unter dem ich suchen könnte für einen wiki oder so
  5. %MUSICBRAINZ_ALBUMTYPE%\
  6. [(%year%)
  7. %album%]
  8. [\CD%discnumber%]
  9. [%track%. ]
  10. (und kürzen) [$left(%artist%,150) -
    allerdings wird hier alles durch , getrennt wie oben erwähnt hätte ich gerne den letzten, sofern mehrere
    mit " & " getrennt anstatt ", ". Auch hier fehlt mir leider ein Fachbegriff sofern es einen gibt für einen Wiki oder so.
  11. (und Zeichen ersetzen) %title%],/,',' , )

$validate(x,y) habe ich gefunden für die Illegalen Zeichen, muss das so noch rein, oder geht das so?

Aktuell wäre ein Ergebnis mit mehreren Albumartist z.B. so:
"M:\Music\Deutschrap#\58 X-Men Klan, Roey Marquis II\Alben(2010) X Tape\09. Defekt36, Absztrakkt, Ruffkidd, Questgott - Niemand.mp3"

Dies hätte ich gerne zu:
"M:\Music\Deutschrap#\58 X-Men Klan\Collabos\mit Roey Marquis II(2010) X Tape\09. Defekt36, Absztrakkt, Ruffkidd & Questgott - Niemand.mp3"
Hier scheitert es halt an Punkt 4 & 10

Und einzel Albumartists sehen so aus:
"M:\Music\Deutschrap\C\Ćelo & Abdï\Mixtapes(2011) Mietwagentape\17. Ćelo, Amar, Aslan - Firestarter.mp3"
(Ćelo & Abdï zählt als 1. Künstler was richtig ist und nicht durch "/" getrennt im Tag,deshalb passt das.

Allerdings hätte ich gerne folgendes:
"M:\Music\Deutschrap\C\Ćelo & Abdï\Mixtapes(2011) Mietwagentape\17. Ćelo, Amar & Aslan - Firestarter.mp3"
Hier scheitert es Quasi "nur" an Punkt 10

Entschuldigt bitte die Ausführlichkeit, ich wollte nur so gut es geht mein Vorhaben Mitteilen und Fragen ob dies überhaupt möglich ist. Punkt 4 macht mir da am meisten sorgen, da ich denke das dies wenn überhaupt nur mit "if" möglich wäre, oder? Ansonsten würde ich einfach 2 Strings machen
um Alben mit mehreren %albumartists% in den Collabos Ordner zu bekommen.

Dankeschön

Probier mal: $replace($regexp('Klaus/Laura/Peter',(.*)/(.*),$1 & $2),/,', ')

Probier: $regexp('Klaus/Laura/Peter',(.*?)/(.*),$1)

Super vielen dank, das hat schon mal geklappt.
Aktuell sieht es so aus

M:\Music\%genre%\$replace($left(%albumartist%,1),1,#,2,#,3,#,4,#,5,#,6,#,7,#,8,#,9,#,С,C,Ć,C,$,#,0,#,*,#)\\$replace($replace($regexp(%albumartist%,(.*)/(.*),$1 & $2),/,', ')\%MUSICBRAINZ_ALBUMTYPE%\[(%year%) %album%][\CD%discnumber%][\%track%. ][$left($replace($regexp(%artist%,(.*)/(.*),$1 & $2),/,', '),150) - %title%],/,',' , )

Somit ist das Ergebnis:
"M:(2006) Gangster Rap\02. Crackaveli, D-Irie, Emok, Peshmerga - Redet Nicht.mp3" ->
"M:\Music\Deutschrap\C\Crackaveli, D-Irie & Emok\Singles(2006) Gangster Rap\02. Crackaveli, D-Irie, Emok & Peshmerga - Redet Nicht.mp3"

Jetzt wäre ja quasi nur noch die Frage ob folgendes möglich ist.
Wenn nur ein Album Artist soll das Skript genau so ausgeführt werden,
sofern aber mehr als ein Albumartist soll das Script quasi wechseln.
Sodas "Crackaveli, D-Irie & Emok\Singles(2006) Gangster Rap" zu "Crackaveli\Collabos\ mit D-Irie & Emok(2006) Gangster Rap" wird.

Also sozusagen wenn ein Albumartist, Script läuft normal.
Sobald 2 oder mehr soll es sich quasi verändern in:
%ersteralbumartist%\Collabos\mit %albumartist2% & %albumartist3%(%year%) %album%....

Sind solche "wechsel möglich, oder wäre es Sinnvoller ein 2. Script zu erstellen um dann je nach Menge der Albumartists zu wechseln?

Wie gesagt, vielen vielen dank schon mal :slight_smile:

Ich verstehe zwar nicht, was diese ziselierte Dateistruktur soll, weil es eigentlich der Abspieler ist, der einem die Daten zeigt. Wenn solche Daten wie "Collabos" nicht in den Tag-Daten vorkommen, dann kann doch ein Abspieler diese Feinheiten gar nicht vernünftig verwenden.

Das Beispiel, das du bringst, will mir nicht so wirklich einleuchten, weil es so aussieht, als würdest du eine völlig neue Struktur aufziehen, weil in

fehlt - und diese Daten nun plötzlich nicht mehr per Bedingung (eckige Klammern) erscheinen, sondern anscheinend immer da sein müssen.

Ansonsten:

wird dann nicht mehr zutreffen, weil im Falle der mehrfachen Künstler nun die neue Regel eintreten soll. Du kannst also dies nehmen:
$replace($regexp(%albumartist%,(.*)/(.*),$1\\Collabo\\$2),/,' & ')

Guten Morgen.
Ja es ist eigentlich unnötig da der/die Player alles Organisiert anzeigen.
Da ich aber oft und viel in den Ordnern rumfliege wollte ich eine etwas andere Struktur.

Aktuell sind es ja einfach nur z.B. ...Music\M\Michael Jackson, Tina Turner\Album(XXXX)....
Dadurch habe ich immer einen Extra Ordner im Ordner "M" sobald es mehrere Alben etc. gibt auf denen Michael Jackson und weitere Künstler sind.
Vor meinem änderungsplan war das alles ein riesen Brei. Zwar sortiert aber naja.
Nun möchte ich das ganze verändern.
Indem nur noch der 1. Albumartist genommen wird im ABC Ordner, und darin Unterordner
wie Alben, EPs, Singles, Mixtapes etc. und eben einen Collabos.
So wäre dann einfach alles was z.B. bei Michael Jackson erscheint und mehr als nur ihn als Albumartist hat im Collabos Ordner.
Quasi ein wenig Discographie ähnlich die Ordner ohne im Hauptbuchstaben Ordner Chaos zu haben.

Dein string klappt soweit sofern es nur 2. Künstler sind, sobald es mehrere sind wird quasi nur der letzte im Collabos Ordner angezeigt also z.B.

1 Künstler das passt:
"M:$PITT KLIKK(2009) Chüars\04. $PITT KLIKK - Picknick.mp3" ->
"M:\Music\Deutschrap#$PITT KLIKK\EPs(2009) Chüars\04. $PITT KLIKK - Picknick.mp3"

2 Künstler das passt (bis halt auf den %MUSICBRAINZ_ALBUMTYPE%, was am ende aber nicht allzu schlimm wäre):
"M:\58 X-Men Klan, Roey Marquis II(2010) X Tape\20. Sirviva, Ruffkidd - Headshot.mp3" ->
"M:\Music\Deutschrap#\58 X-Men Klan\Collabos\mit Roey Marquis II\Alben(2010) X Tape\20. Sirviva & Ruffkidd - Headshot.mp3"

2+ Künstler hier scheint was zu haken:
"M:(2006) Gangster Rap\02. Crackaveli, D-Irie, Emok, Peshmerga - Redet Nicht.mp3" ->
"M:\Music\Deutschrap\C\Crackaveli & D-Irie\Collabos\mit Emok\single(2006) Gangster Rap\02. Crackaveli, D-Irie, Emok & Peshmerga - Redet Nicht.mp3"

hier sollte es ...\Crackaveli\Collabos\mit D-Irie & Emok... sein.

Und zwecks dem nicht richtigen einleuchten. Ja sobald es mehr als 1 Künstler sind, soll quasi %MUSICBRAINZ_ALBUMTYPE% nicht mehr genutzt werden, aber das könnte ich durch 2 Strings lösen. Einen für Solo Albumartist und einen für 1+ Albumartists. Ich dachte halt das wäre vielleicht mit if möglich, aber bin mir da auch nicht so sicher. Dazu hatte ich etwas gefunden was quasi den Dateityp abfragt und dementsprechend anders handelt. Nur weiß ich nicht ob das möglich ist anhand der Anzahl von Albumartists. Hier mal der Schnipsel den ich gefunden hatte:

%ALBUMARTIST%' - '%ALBUM%$if($eql(%_tag%,'FLAC'),' FLAC ',' ')%YEAR%''%ARTIST%' - '%ALBUM%' - '$num(%TRACK%,2)'.'%TITLE% %ALBUMARTIST%' - '%ALBUM%$if($neql($upper(%_extension%),'MP3'),' '$upper(%_extension%)' ',' ')%YEAR%''%ARTIST%' - '%ALBUM%' - '$num(%TRACK%,2)'.'%TITLE%

Das ändert ja den Album Ordnernamen sofern es eine Flac datei ist und hängt Flac an.
Hier müsste ja nicht der dateityp gelesen werden sondern die Anzahl an Künstlern die durch / im Albumartist getrennt sind und quasi gezählt werden. Ist das Umsetzbar in Mp3tag? Sonst nehme ich halt wie gesagt einfach 2 Aktionen für Solo und Multi Künstler

Probier bitte
$replace($regexp(%albumartist%,(.*?)/(.*),$1\\Collabo\\$2),/,' & ')

Ok das verschieben der Künstler funktioniert, also das nur noch der 1. im Hauptordner ist. Die aufteilung mit kommas und & kann man da aber wohl nicht mehr ändern, oder?

Also z.B. von
Michael Jackson\Collabos\mit Tina Turna & Britney Spears & Janet Jackson

Zu:
Michael Jackaon\Collabos\mit Tina Turner, Britney Spears & Janet Jackson

Hatte schon versucht den string anzupassen, aber die Aufzählung scheint anhand "$1\Collabos\$2" nicht zu funktionieren.

Bei dem "funktionierenden" ohne multi Künstler ist es ja "$1 & $2", ändere ich dies landet das "&" im Ordnernamen und nicht als Aufzählung quasi.

Hoffe die Antwort ist lesbar. Muss gerade vom Handy tippen, da Internet weg ist dank Glasfaser ausbau :confused:

Du könntest probieren:
$regexp($replace($regexp('Michael Jackson/Tina Turner/Britney Spears/Janet Jackson',(.*?)/(.*),$1\\Collabo\\mit $2),/,' & '),(.*?) & (.*),'$1, $2')

Als Warnung: diese Funktion wirkt auch auch Gruppennamen wie "Earth, Wind & Fire", "Bell, Book & Candle", "Portugal, the man".

Super, vielen dank. Funktioniert. Die Bandnamen wären am Ende im Ordnernamen nicht so wild, sie bleiben im Tag ja richtig. Was ja wiederum das wichtigste für die Mediaplayer ist.

Edit:
Wenn ich das richtig verstanden habe brauche ich bei Tag > Filename keine Invalide Zeichen entfernen da dies von alleine "Legale" Dateinamen macht. Ist dies auch bei Action > Tag-Feld formatieren > _FILENAME der fall? Würde das gerne als eine Action machen, hab aber angst Daten zu verlieren oder so falls Illegale Zeichen vorhanden wären