Move "Featuring" from Artist to Title

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

attached


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:

Currently

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)

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

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

Wanted:
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.
If AOK,
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:

Artist1\\Artist2\\Artist3

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.

http://help.mp3tag.de/options_format.html#split

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.

eg:
ARTIST
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 :; )
TITLE
day that I die
day that I die (radio mix)

to

ARTIST
Zac Brown
TITLE
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

Uhm...how do I add a filter as an action? Or am I understanding this wrong?

There is no action to activate a filter.
If you apply a filter first, you can see if it is necessary at all to start the switching action.
If there are no hits, don't do it.
And if there are, then the action is only applied to the filtered ones which should speed up processing.

Just a footnote: I think that discogs currently always adds the featured artist to the artist field and not to the title field (any more). So maybe you don't have to do it at all, if you want to keep the data that comes from discogs.

Ok, let's see if I got this right. So you mean, run that action group but without the last line on the whole enchilada - because we need to create and populate the feat_artist field, right? - then filter the result by %feat_artist% PRESENT and apply the last step of the action group only on those?

Tried it and it works. Just wondering if there isn't an easier way to do this without splitting the action group/manual intervention....