Script Frage: Mehrere Interpreten im ARTIST Feld auf einen Interpreten reduzieren


#1

Hallo,

zum Taggen benutze ich mp3tag schon lange. Leider kenne ich mich mit den Skripts nicht aus und brauche eine recht komplizierte Lösung:

Meine mp3s sind alle so getagt, dass im ARTISTS Feld verschiedene Interpreten mit einem Komma getrennt sind!

z.b. ARTIST: Artist 1, Artist 2, Artist 3

Mein Squeezebox Server zuhause kann das unterscheiden und weist so die Lieder Artist1, Artist 2 und Artist 3 zu!

Leider können viele Player so nicht zwischen den Artists unterscheiden und das entsprechende Lied erscheint dann entsprechend unter "Artist1, Artist2, Artis3" was total unübersichtlich ist!

Mein Ziel ist es nun, eine zweite Datenbank auf zu bauen die nur einen ARTIST im Name hat.

Das Skript sollte also erkennen, was vor dem ersten Komma im ARTISTS Feld steht, dann die nächsten beiden Zeichen entfernen (also das Komma und das Leerzeichen danach) und dann den Rest aus dem Artist Feld in eine Klammer ganz am Schluss im TITLE Feld schreiben.

Kann mir da bitte jemand helfen?


#2

Um Multivalue Tags zu erzeugen(also solche wie sie Squeezbox hier erkennt), wird in Mp3Tag eigentlich \\ verwendet. Versuch das doch mal. Das müssten die meisten Player lesen können. Player die das nicht lesen können stellen normal nur den ersten Artist dar.

Um Multivalue Tags zu erzeugen:
Aktion: Ersetzen
Feld: ARTIST
Original: ", "
Ersetzen durch "\\"
(jeweils ohne Anführungszeichen; nach dem Ausführen der Aktion is nochmal ein zusätzliches Speichern notwendig (Strg + S) damit \\ als Trennzeichen für Multivalue Tags geschrieben wird)

Deine ursprüngliche Anfrage wenn du von meinem Tipp nichts hältst:
Aktion: Tag Felder importieren
Quellformat: %title% $regexp(%artist%,(.?)',' (.),'('with $2')'XXXXX$1)
Formatstring: %title%XXXXX%artist%
(ich war so frei "with " an den Anfang der Klammer zu schreiben. du kannst das nach wunsch auch mit "mit", "feat." oder sonstwas ersetzen oder natürlich auch weglassen.)


#3

vielen dank für die Antwort :slight_smile: das mit den Multivalue tags mit "\\" werde ich später mal testen.

Beim Squeeze Server werde ich die Trennzeichen sicher manuell eintragen müssen und dann ist das ja kein Problem.

Sonst verwende ich noch ein HTC Desire mit Android und da hat es bisher mit den Kommas nicht funktioniert aber möglicherweise erkennt er die \\.

Im Auto setze ich noch Centrafuse als Frontend ein und bis dato hatte ich dafür auch keine Lösung aber das werde ich ebenfalls mal testen.

EDIT: Hab jetzt mal eben bei Wiki geschaut und dort folgendes gefunden:

welche Tag Version würdest du mir denn generell empfehlen?


#4

Hallo HellSassa69, du kannst es mir glauben, ich habe mir echt Mühe gegeben, eine recht komplizierte Lösung zu erfinden, aber es ist mir nur gelungen, diese recht einfache Lösung zu finden.

Filter setzen.

Filterausdruck: ARTIST HAS ", "

Gewünschte Dateien selektieren.

Aktionengruppe ausführen.

Anfang Aktionengruppe Test 2010#20101112.HellSassa69.1

Aktion #1
Aktionstyp 5: Tagfeld formatieren
Feld: ARTIST_OLD
Formatstring: %ARTIST%

Aktion #2
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE_OLD
Formatstring: %TITLE%

Aktion #3
Aktionstyp 5: Tagfeld formatieren
Feld: ARTIST_TMP
Formatstring: $replace(%ARTIST%,',÷','\\')

Aktion #4
Aktionstyp 5: Tagfeld formatieren
Feld: ARTIST_NEW
Formatstring: $meta(ARTIST_TMP,0)

Aktion #5
Aktionstyp 9: Tagfelder entfernen
Folgende Tagfelder entfernen (mit Semikolon getrennt): ARTIST_TMP

Aktion #6
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE_NEW
Formatstring: $replace(%ARTIST%,%ARTIST_NEW%,)

Aktion #7
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE_NEW
Formatstring: '('$trim(%TITLE_NEW%,',÷')')'

Aktion #8
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE_NEW
Formatstring: %TITLE%'÷'%TITLE_NEW%

Hinweis: Ersetze jedes ÷ Sonderzeichen durch ein Leerzeichen.
Ende Aktionengruppe Test 2010#20101112.HellSassa69.1 (8 Aktionen)

  1. Fertig.

Man kann die Aktionengruppe verändern, so dass am Ende nur die Tag-Felder ARTIST und ARTIST_OLD und TITLE und TITLE_OLD vorhanden sind.

Anfang Aktionengruppe Test 2010#20101112.HellSassa69.2

Aktion #1
Aktionstyp 5: Tagfeld formatieren
Feld: ARTIST_OLD
Formatstring: %ARTIST%

Aktion #2
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE_OLD
Formatstring: %TITLE%

Aktion #3
Aktionstyp 5: Tagfeld formatieren
Feld: ARTIST_TMP
Formatstring: $replace(%ARTIST%,',÷','\\')

Aktion #4
Aktionstyp 5: Tagfeld formatieren
Feld: ARTIST_NEW
Formatstring: $meta(ARTIST_TMP,0)

Aktion #5
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE_NEW
Formatstring: $replace(%ARTIST%,%ARTIST_NEW%,)

Aktion #6
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE_NEW
Formatstring: '('$trim(%TITLE_NEW%,',÷')')'

Aktion #7
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE_NEW
Formatstring: %TITLE%'÷'%TITLE_NEW%

Aktion #8
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE
Formatstring: %TITLE_NEW%

Aktion #9
Aktionstyp 5: Tagfeld formatieren
Feld: ARTIST
Formatstring: %ARTIST_NEW%

Aktion #10
Aktionstyp 9: Tagfelder entfernen
Folgende Tagfelder entfernen (mit Semikolon getrennt): ARTIST_TMP;ARTIST_NEW;TITLE_NEW

Hinweis: Ersetze jedes ÷ Sonderzeichen durch ein Leerzeichen.
Ende Aktionengruppe Test 2010#20101112.HellSassa69.2 (10 Aktionen)

Wenn man auf die Sicherungsfelder ARTIST_OLD und TITLE_OLD verzichten kann, dann können diese auch noch entfernt werden mit der Aktion "Tagfelder entfernen".

Wenn du verstanden hat, was die einzelnen Aktionen machen, dann lässt sich die Anzahl der Aktionen verringern durch Zusammenfassen einzelner Schritte.

Zum Beispiel:

Anfang Aktionengruppe Test 2010#20101112.HellSassa69.3

Aktion #1
Aktionstyp 5: Tagfeld formatieren
Feld: ARTIST_OLD
Formatstring: %ARTIST%

Aktion #2
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE_OLD
Formatstring: %TITLE%

Aktion #3
Aktionstyp 5: Tagfeld formatieren
Feld: ARTIST_TMP
Formatstring: $replace(%ARTIST_OLD%,',÷','\\')

Aktion #4
Aktionstyp 5: Tagfeld formatieren
Feld: ARTIST
Formatstring: $meta(ARTIST_TMP,0)

Aktion #5
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE
Formatstring: $replace(%ARTIST_OLD%,%ARTIST%,)

Aktion #6
Aktionstyp 5: Tagfeld formatieren
Feld: TITLE
Formatstring: %TITLE_OLD%'÷('$trim(%TITLE%,',÷')')'

Aktion #7
Aktionstyp 9: Tagfelder entfernen
Folgende Tagfelder entfernen (mit Semikolon getrennt): ARTIST_OLD;TITLE_OLD;ARTIST_TMP

Hinweis: Ersetze jedes ÷ Sonderzeichen durch ein Leerzeichen.
Ende Aktionengruppe Test 2010#20101112.HellSassa69.3 (7 Aktionen)

Beispieldatei:
20101112.Test.HellSassa69.mp3 (2.22 KB)
Aktionengruppe 1
Test_2010_20101112.HellSassa69.1.mta (387 Bytes)
Aktionengruppe 2
Test_2010_20101112.HellSassa69.2.mta (484 Bytes)
Aktionengruppe 3
Test_2010_20101112.HellSassa69.3.mta (359 Bytes)

DD.20101112.1356.CET
Edit.Durch Forum Absturz am 20101112 verlorengeganger Text ergänzt.
DD.20101113.0710.CET

20101112.Test.HellSassa69.mp3 (2.22 KB)

Test_2010_20101112.HellSassa69.1.mta (387 Bytes)

Test_2010_20101112.HellSassa69.2.mta (484 Bytes)

Test_2010_20101112.HellSassa69.3.mta (359 Bytes)


#5