Custom naming with multiple artists

For albums with multiple album artists, I like to have them in a folder with the artists names separated by periods. For instance, I would like the album “Cannonball and Coltrane” by Cannonball Adderley and John Coltrane to be placed in the following path:


Is there any way of getting the album artists’ names with a custom separator in beets?

Thanks for your help

We don’t store the names of artists separately, so there’s not a straightforward way to change the joiner. But you might try string manipulation. In particular, you could try using the inline plugin to define a new field like $artist_dots that works something like artist.replace(' and ', '.'). Would that work?

1 Like

Thanks! That sounds like it could work. I will give it a try.

When you say that artists names are not stored separately, is that a limitation of the MusicBrainz database or beets itself? I am surprised because when you look up a release on MusicBrainz, it seems to understand when there are multiple album artists, for instance see:

It’s a beets thing, yeah. When we fetch the data from MusicBrainz, we flatten the list of artists to a single string using the “joiner” strings from MB. This thread might be relevant:

1 Like

Ah shucks. From the sound of it, it seems like beets might not work for my purposes. I was using Picard before. I really like that when I upload to Kodi I can see all albums by an artist, even those which are collaborations with other artists. So for instance, “Cannonball and Coltrane” comes up under both “Cannonball Adderley” as well as under “John Coltrane”. Meanwhile there is no artist entry for “Cannonball Adderley and John Coltrane”.

From the short time I have been using it, I really like beets otherwise. I am tempted to use Picard for fetching tags, and then use beets for path naming and fetching art. Is this a reasonable thing to do?

I’d say it’s reasonable, but it may be tricky: in my experience, beets really wants to (re-)autotag things already tagged by Picard, unless you pass the -A flag to beet import to import as-is, in which case the album art fetching would also be skipped. To my (limited) knowledge, there is no middle ground currently where you can configure some subset of import-time plugins to execute, but not others.

Maybe more effective, though still not ideal, would be to first import to beets, then retag with Picard?