Move "Featuring" from Artist to Title

yes, this would cover off the first scenario, but maybe not the second

From: Artist (feat. a, b, c, b & f) – Title (oaonv Remix)
To: Artist – Title (feat. a, b, c, b & f) (oaonv Remix)

If you have Title (feat...) (something else)

then let loose an action of the type "Replace with regular expression" for TITLE
Search string: (.) ((feat.)) ((.*))
Replace string: $1 $3 $2

thanks. No joy with this one I am afraid. I don't have (feat. ....) (something else) after the title

I Artist (feat....) - Title (something else) & am looking for Artist - Title (feat....) (something else).

So now it is time that you show us the action and the strings that you use.


Are we talking about fields or are we talking about the filename?

The regex works fine, it is just to positioning side of things for the TITLE tag. For example:


Title: That's Crazy (Remix)
Artist: P. Diddy (feat. Black Rob, Missy Elliott, Snoop Dogg & G. Dep)

In terms of the regex:

Full Match (0/62): P. Diddy (feat. Black Rob, Missy Elliott, Snoop Dogg & G. Dep)

Group 1. (0/8): P. Diddy
Group 2. (9./62): (feat. Black Rob, Missy Elliott, Snoop Dogg & G. Dep)

Title: That's Crazy (feat. Black Rob, Missy Elliott, Snoop Dogg & G. Dep) (Remix)
Artist: P. Diddy

OK: then try it with these steps:
Strip the feat-artist from title and save it in a user-defined field, e.g. %feat_artist%.
Use an action of the type "Guess value" (import tag field) for that:
Field: %artist%
Guessing pattern: %artist% (feat. %feat_artist%)

Append the field TITLE with the data from FEAT_ARTIST with an action of the type "Format value" for TITLE:
Format string: %title% (feat. %feat_artist%)

This leads to a TITLE with the contents

"That's Crazy (Remix) (feat. Black Rob, Missy Elliott, Snoop Dogg & G. Dep)"
If you want to swap that, use an action of the type "Replace with regular expression" for TITLE:
Search string: (.*) (\(.*\)) (\(feat. .*)
Replace string: $1 $3 $2

Finally, you may remove the user-definded field FEAT_ARTIST

Many thanks for your insight on this. I got this working in two stages

stage 1:

Action: Guess Value
Source: %title% $regexp(%artist%,'(.*) (\(?(?:featuring|feat|ft).? .*)',$2 +++ $1,1)
Guessing Pattern: %title% +++ %artist%

this shifted the (feat....) string to the title, however at the end. So all I needed to work with was the TITLE tag.

stage 2

Action: RegEx
Field: TITLE
RegEx: (.*) (\(.*\)) (\(feat. .*)
Replace Matches With: $1 $3 $2

Sorry to necro an old post.... I have been reading this thread for a couple of days now trying to figure out how to use Guess Values but I fear I may be going backwards :S

I want to achieve the following...

Title - Believe [feat. Kele Okereke]
Artist - The Chemical Brothers

Title - Believe
Artist - The Chemical Brothers feat. Kele Okereke

If anybody could help me I would be deeply greatful, I absolutely love the power mp3tag wields and want to take advantage as best I can, I'm struggling so hard with this tho! :frowning:

Almost all of it is described in post #88

Create an action of the type "Guess value" for
Source: %TITLE%
Guessing pattern: %title% [feat. %feat_artist%]

Check if the field FEAT_ARTIST now exists (Alt-T) and has the correct contents.
create an action of the type "Format value" for ARTIST
Format string: %artist% feat. %feat_artist%

If AOK you can delete the field FEAT_ARTIST.

@DetlevD you seem to be an expert at this by now, so I humbly request your skills.

Is it possible to move featuring artists from the title to multiple artist fields? Whether it be in 1 or multiple steps?

The TITLE format is:

TITLE (ft. Artist1, Artist2, Artist3)

I've tried sending the featuring artists to the ARTIST field and then replacing the commas with \\ in the hopes of placing each artist in it's own field, but it only results in 1 ARTIST field with the artists listed like so:


where do you check this? Have a look at the extended tags dialogue and see if you have 3 lines for fields labelled ARTIST.

In the extended fields I just see them listed as I described.

If I enter the artists manually and use \\ to separate it works fine, if I use a replace action to replace ", " between the artists with \\ then It doesn't separate them into individual artists.

Maybe, it is necessary to add a "Split fields" action to the action group.
Use the \\ as separator.

1 Like

Just press the save-button after the replace-action.

1 Like

Tried this, didnt work the way I would like it to. Modified things to see if I can get it to work, Realised I have no idea what I'm doing at all.

As far as I could figure out, the above only works if the featuring part of the ARTIST field is in brackets, right?

What would I need to change if I would like to move any featuring part to the end of the title but before any further brackets.

Zac Brown feat. Amos Lee
Zac Brown (feat. Amos Lee)
Zac Brown feat. Amos Lee, The Ranglers & Honey And Tudors
Zac Brown (feat. Amos Lee, The Ranglers & Honey And Tudors)
(and any variation of feat/ft/featuring capitalised or not, with or without full-stop or coma or :; )
day that I die
day that I die (radio mix)


Zac Brown
day that I die (feat. amos lee)
day that I die (feat. amos lee) (radio mix)
day that I die (feat. amos lee, the ranglers & honey and tudors)

any help greatly appreciated.

I would say that at least

should have worked for

for the other occasions

you would need a different pattern - or some kind of actions that first of all unify the "feat".

So, I think I got the action for unifying working.

How do I make it not do anything if there's no featuring part at all. Right now it just adds (feat. ) to every title where there was no featuring part in the Artist field.

If you have used the Feat_artist field, then filter for tracks that have got this field
%feat_artist% PRESENT
and apply the moving action only to these files.
Or filter for files that have feat in ARTIST
artist HAS feat