Editing Mixartists Discogs

Hi there

I need help :w00t: Perhaps there is one person who can support me. I managed to do lots of things myself but here I don't know how to do it.
I have the following problem: I import from Discogs the Mixartist into the Composer Tag. So far so good. I get then the following for example:

William Galassini (Orchestrated By); Mario Migliardi (Organ [Hammond]); Verde (Written-By) Modugno (Written-By)

At the end it should look this way:
Verde; Modugno

My problem is how to put all names into credits, resp. UNSYNCEDLYRICS, or to cancel them, except the (Written-By) Data. '(Written-By)' should disappear to. At the end only the composers names itself are in the composer tag left.

I have the newest MP3Tag Version 2.58 and I also use Pone's Discogs Mod 4.2.

I would be very happy if someone out there could give me hand.
Thanks a lot

From: 'William Galassini (Orchestrated By); Mario Migliardi (Organ [Hammond]);

Verde (Written-By) Modugno (Written-By)

' To : 'Verde; Modugno' Action "Format value" or Convert "Tag - Tag" Field: WRITTEN_BY Formatstring: %COMPOSER% Action "Format value" or Convert "Tag - Tag" Field: WRITTEN_BY Formatstring: $regexp($regexp($regexp('; '%WRITTEN_BY%'; ','^.*;\s(.+?\(Written-By\));\s.*$','$1'),'\s\(Written-By\)',';'),';$',)


Hi DetlevD

Thank you so much for your help.
I just tried to do it exactly, how you wrote. I tried both variations. Unfortunately it doesn't work.
This is what is left in the Tagfield "Composer":
, ,

The values disappear.

When I download the data from Discogs, the mentioned data before is in the tag-field "Composer".
Perhaps the problem is to find there, I don't know.

Vielleicht habe ich mich im Englischen falsch ausgedrückt.
Was ich gerne möchte ist, dass von den Einträgen bei Discogs unter "Mixartist" nur die Komponisten (nur deren Namen ohne (Written-By)) im Feld "Komponist" übrigbleiben und die anderen entweder gelöscht oder besser ins Feld Credits kopiert werden.

Ist das machbar?

sorry i did a mistake, just the semikolon are displayed in the Composer Tag:
; ;

I try to answer in english.
Gero, I gave you a proposal, how you can edit the value, which the WebSource script has stored into the tag-field COMPOSER. You have to adjust that proposal to your situation.

If you want to evaluate the automatically filled field COMPOSER and immediately overwrite it, then you do not need to create the auxiliary tag field WRITTEN_BY.
The one action with the three regexp functions should work, ...
change the read tag-field content name to %COMPOSER%, and the write tag-field name to COMPOSER.

  1. Action "Format value" or Convert "Tag - Tag"
    Field: CREDITS
    Formatstring: $trim($replace(%COMPOSER%,$regexp('; '%COMPOSER%'; ','^.;\s(.+?(Written-By));\s.$','$1'),),' ;')

"William Galassini (Orchestrated By); Mario Migliardi (Organ [Hammond]); Verde (Written-By) Modugno (Written-By)" ->
"William Galassini (Orchestrated By); Mario Migliardi (Organ [Hammond])"

  1. Action "Format value" or Convert "Tag - Tag"
    Field: COMPOSER
    Formatstring: $regexp($regexp($regexp('; '%COMPOSER%'; ','^.;\s(.+?(Written-By));\s.$','$1'),'\s(Written-By)',';'),';$',)

"William Galassini (Orchestrated By); Mario Migliardi (Organ [Hammond]); Verde (Written-By) Modugno (Written-By)" ->
"Verde; Modugno"


Thank you for trying to help me Detlef.
I must admit that I don't have a clue and no experience with scripts. I can do simple things on MP3tag with the existing methods, but nothing more, unfortunately.

I tried your new proposal. That's what it displays now:

; William Galassini (Orchestrated By); Mario Migliardi (Organ [Hammond]); Verde; Modugno;

Can you make me a formatstring exactly for that example? I know that the Mixartist at Discogs are not always the same. With the time I will learn to add things by myself. But I need first a string that works.

For example which is the command to cancel (name including bracket an semikolon) "William Galassini (Orchestrated By);"?

Ok Detlef. I try what you wrote. I didn't see the whole answer before. I will let you know. sorry

I tried again... nope....
It copies the whole content (including the (Written-By)) of Composer to Credits, like this:
William Galassini (Orchestrated By); Mario Migliardi (Organ [Hammond]); Verde (Written-By) Modugno (Written-By)
and it overwrites the value that is already in the "Credits" Field.

But it doesn't delete the superfluos once in the Composer Field. Here the Preview after using your proposed 2nd action:
; William Galassini (Orchestrated By); Mario Migliardi (Organ [Hammond]); Verde; Modugno;

Harte Nuss....

See above post #5, what there is shown as "Preview", that is what Mp3tag displays on my screen.
This demonstrates that it works as planned and designed.

I have to rely on that, what you give as input, and it is impossible for me to see what your fingers type.
Maybe there is some typographical error.

When "... It copies the whole content ...", then the regexp function has found no match, and returns the full input string. This may point to an issue with the input data, which might be of some other format than the given example string.

If you want to append additional data to an existing content in the tag-field CREDITS, then you have to execute an action "Format value", e. g. like this ...
Formatstring: %CREDITS% 'new data here'


So, I cancelled all tags in the file, copied the content of the Composer from here, put it back to the mp3 and used your script and it worked!
I don't know what the problem was.
Could it be, that it has to do with "Modugno"? This composer was imported automatically from another field and added to the string when I downloaded the data.

I have another example, if you like. Had to search for it. It's not that easy to find when you need it:

Stan Applebaum (Arranged By); Stan Applebaum (Conductor); Leiber & Stoller (Producer); Ben E. King (Written By); Elmo Glick (Written By)

What does your formatstring exactly do? Can you explain to a layman like me in order, that probably one day I can do such formatstrings by myself? What I would need is one, that can be used generally for my case, in the sense of "delete all, except content of (Written-By)

I'm a simple user, but I'm still interested to learn even sometimes I understand only "Railway Station"... hehe.
I have tons of Records and CD's that I'm ripping. I really need solutions to tag them as easy as possible.

I'm so greatful your are taking your precious time for me.


There are differences in spelling and format of the string.
"Written By" / "Written-By"
Regarding the first example, the space separated group of two "Written-By" names, now, regarding the second example, is parted by a semicolon into two groups of each one "Written By" name.

This leads to the question: How that?
Why delivers the previous data mining process different results?
Is it done by the websource script, or is it done by the original web data source?
Are there different websource scripts involved?

There are different options to handle such a bad situation.

  • Make sure to get always input data having the same identical "field-structure" and spelling.
  • To adapt different input data create for each special case a likewise special adapter routine for importing.
  • Create some small helper functions for cleaning up the incoming data to get a standardized format and spelling. Afterwards run one dedicated import routine.

The simpler the input data is structured, the less complicated they can be imported and processed further.

Another way to go could be ... to check the incoming data at the source, will say, maybe adapt the websource script in order to output clean data for all cases.
So you can study the Mp3tag Websource Language and make the needed changes directly there.


you can get your desired result direct from my script if you set the setting file correct.
give me a few minutes to check the settings you need.

@ DetlefD
It is indeed a problem. I don't think that the problem is a webscript. The problem is to find directly at Discogs where the data is from. Mostly there are only (Written-By) in the Mixartists, but this could also be written like this (Written By) or "Written By" or (Lyrics By), (Music By) and so on. I don't know if that problem caused by the people who insert the data there (everybody is allowed to do it!) or if there have been changes at Discogs during the years and the old data has not been updatet.
So it's hard to find a perfect solution.
If I have one who is easy to adapt, I can do it then by myself.

Thank you very much anyway for your support. I appreciated a lot. I feel very lost in this matter.

Hi Pone
Thank you for checking. I'm curious if you find a good solution.
Your script anyway is great and a big help to me.

for the difference of Written-By and Written By see here:

Do you want to combine the album credits and the track credits. My script is intended to be able to do this. But there is a bug somewhere when it combines that with the splitting for certain roles (as Written-By, Written By).
It's hard to find that. I wrote this script at a time where I had much more time than I have now.

OK, I can give you a instruction to get most of the things you want. But you still need an action afterwards to combine the different things into one tag field.

In the settings file:



Extra Artist - Track Credits - Name Variation: >CREDITS

  • name/role format: >name
  • combine names with same roles >no

if more than one extra track artist:

  • multivalue tag field >no
  • multiline tag field >no
  • list of names >yes
    • seperating characters used in list >;
      Extrafields: >COMPOSER:Written-By<>COMPOSER 2:Written By<
  • delete extra fields from main section >yes


Extra Artist - Album Credits - Name Variation: >CREDITS ALBUM

  • name/track n format: >name (track: n)
  • name/role format: >name
  • combine names with same roles >no

if more than one extra album artist:

  • multivalue tag field >no
  • multiline tag field >no
  • list of names >yes
    • seperating characters used in list >;
      Extrafields: >COMPOSER:Written-By<>COMPOSER:Written By<
  • delete extra fields from main section >yes


Extra Artists Extrafields - Name Variations:
if more than one extra artist:

  • multivalue tag field >no
  • multiline tag field >no
  • list of names >no
    • seperating characters used in list >;


Combine Credit fields with other fields:

  • Track Credits Name Variations >no
  • Album Credits Name Variations >no

that should work for the most of it.
Note that there is alway a space at the end of:
"- seperating characters used in list >; "

You need two tag fields for track & album credits with different names (CREDITS & CREDITS ALBUM in my example). If you put the last settings (Combine Credit fields with other fields:) to ">yes", you can use the same field name, but you will have all track credits in every file (still with a comment to what track they belong)

You also need two different tag fields for "Written-By" and "Written By" (COMPOSER & COMPOSER 2), but only at track credits. You will have to combine those afterwards in an action group. I see no other solution for that at the moment.

Maybe you get problems when there are Written-By/Written By artist in the tracklist and in the album credits. I think in this case there will be no seperating character between them. But I haven't found a example release for testing this and there is none in my really huge mp3 collection which is largely discogs tagged.
If you find such an example, please post me a link for testing this.