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

**URL:** https://community.mp3tag.de/t/script-frage-mehrere-interpreten-im-artist-feld-auf-einen-interpreten-reduzieren/11111
**Category:** Allgemein
**Created:** [November 12, 2010, 7:11am UTC](https://community.mp3tag.de/t/script-frage-mehrere-interpreten-im-artist-feld-auf-einen-interpreten-reduzieren/11111 "2010-11-12T07:11:57Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![HellSassa69](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/h/54ee81/32.png) [@HellSassa69](https://community.mp3tag.de/u/HellSassa69)
#### Post date: [November 12, 2010, 7:11am UTC](https://community.mp3tag.de/t/script-frage-mehrere-interpreten-im-artist-feld-auf-einen-interpreten-reduzieren/11111/1 "2010-11-12T07:11:57Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![pone](https://community.mp3tag.de/user_avatar/community.mp3tag.de/pone/32/272_2.png) [@pone](https://community.mp3tag.de/u/pone)
#### Post date: [November 12, 2010, 10:53am UTC](https://community.mp3tag.de/t/script-frage-mehrere-interpreten-im-artist-feld-auf-einen-interpreten-reduzieren/11111/2 "2010-11-12T10:53:17Z")

</div>

> [@HellSassa69](#):
>
> 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.

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.)

---

<div class="post-metadata">

### Author: ![HellSassa69](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/h/54ee81/32.png) [@HellSassa69](https://community.mp3tag.de/u/HellSassa69)
#### Post date: [November 12, 2010, 11:16am UTC](https://community.mp3tag.de/t/script-frage-mehrere-interpreten-im-artist-feld-auf-einen-interpreten-reduzieren/11111/3 "2010-11-12T11:16:37Z")

</div>

vielen dank für die Antwort 🙂 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:

> [@](#):
>
> Multiple values in v2.3 tags
> 
> The version 2.3 of the standard prescribes that some fields can contain multiple values separated by the "/" character. The fields that can contain multiple values are:
> 
> TPE1 TCOM TEXT TOLY TOPE

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

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [November 12, 2010, 11:57am UTC](https://community.mp3tag.de/t/script-frage-mehrere-interpreten-im-artist-feld-auf-einen-interpreten-reduzieren/11111/4 "2010-11-12T11:57:20Z")

</div>

> [@HellSassa69](#):
>
> ... 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 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. ...

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.

1. 

Filter setzen.

Filterausdruck: **ARTIST HAS ", "**
1. 

Gewünschte Dateien selektieren.

1. 

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](https://community.mp3tag.de/uploads/default/original/2X/b/b735051eda58a251a74bda55a0ec9d569742addb.mp3) (2.22 KB)  
Aktionengruppe 1  
[Test\_2010\_20101112.HellSassa69.1.mta](https://community.mp3tag.de/uploads/default/original/2X/7/7a21898381d47c5118be057fca53c2dd2482be1b.mta) (387 Bytes)  
Aktionengruppe 2  
[Test\_2010\_20101112.HellSassa69.2.mta](https://community.mp3tag.de/uploads/default/original/2X/b/b5b9a631ecea4cba8f2bde393a97e1a031037e71.mta) (484 Bytes)  
Aktionengruppe 3  
[Test\_2010\_20101112.HellSassa69.3.mta](https://community.mp3tag.de/uploads/default/original/2X/9/91eab551b2b0e0e9ce24de2f0ca81c2f25831afe.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](https://community.mp3tag.de/uploads/default/original/2X/b/b735051eda58a251a74bda55a0ec9d569742addb.mp3) (2.22 KB)

 

[Test\_2010\_20101112.HellSassa69.1.mta](https://community.mp3tag.de/uploads/default/original/2X/7/7a21898381d47c5118be057fca53c2dd2482be1b.mta) (387 Bytes)

 

[Test\_2010\_20101112.HellSassa69.2.mta](https://community.mp3tag.de/uploads/default/original/2X/b/b5b9a631ecea4cba8f2bde393a97e1a031037e71.mta) (484 Bytes)

 

[Test\_2010\_20101112.HellSassa69.3.mta](https://community.mp3tag.de/uploads/default/original/2X/9/91eab551b2b0e0e9ce24de2f0ca81c2f25831afe.mta) (359 Bytes)

---

<div class="post-metadata">

### Author: ![pone](https://community.mp3tag.de/user_avatar/community.mp3tag.de/pone/32/272_2.png) [@pone](https://community.mp3tag.de/u/pone)
#### Post date: [November 12, 2010, 12:22pm UTC](https://community.mp3tag.de/t/script-frage-mehrere-interpreten-im-artist-feld-auf-einen-interpreten-reduzieren/11111/5 "2010-11-12T12:22:48Z")

</div>

> [@HellSassa69](#):
>
> EDIT: Hab jetzt mal eben bei Wiki geschaut und dort folgendes gefunden:
> 
> QUOTE 
> 
> Multiple values in v2.3 tags
> 
> The version 2.3 of the standard prescribes that some fields can contain multiple values separated by the "/" character. The fields that can contain multiple values are:
> 
> TPE1 TCOM TEXT TOLY TOPE

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

Meinst du mit Tag Version v2.3 oder v2.4?  
Lass ruhig standardmäßig auf v2.3. das ist zwar eigentlich nicht für multivalue tags konzepiert, wird aber in den meisten Programmen trotzdem unterstützt.

v2.4 hat den Nachteil, dass es sich scheinbar noch nicht so richtig druchgesetzt hat und nicht von allen Programmen unterstüzt wird. Gerade im Auto oder auf Mobile Playern kannst du dann das Problem haben, dass die Tags gar nicht erkannt werden.

Wenn du darauf anspielst das in dem Wiki Zitat "/" als Trennzeichen steht, das ist Software abhängig. Und bei Mp3Tag ist es "\\", das kann dann von anderen Programmen durchaus wieder anders angezeigt werden.

TPE1 TCOM TEXT TOLY TOPE bezeichnen die Frames, als den Ort an denen die Tags eigentlich in der Datei geschrieben werden. Der Frame TPE1 entspricht dem ARTIST Tag.  
[https://docs.mp3tag.de/mapping](https://docs.mp3tag.de/mapping)  
Braucht dich aber eigentlich nicht zu kümmern, für Mp3Tag brauchst du nur den Namen der Tags.  
Auch versteh ich die Aussage in dem Zusammenhang nicht ganz, weil ich durchaus Multivalue Tags auch für andere Felder benutze als die fünf hier genannten.
