Possibility to tag by artist "area"? (Artist country of origin)

Hello, I would want to add a tag that would be very important to me, and I just cannot do it manually to every artists.

Is it possible to add a tag for the “Artist country of origin” ?
I just see the countries of the releases

If yes, can someone explain me how to do it please it would be very appreciated

1 Like

No, it’s not: MBS-12170

2 Likes

Disclamer:Yes I know I know nothing about Picard

Request MBS-12170 opened 8 months ago already

It can put a thousand tags into one song yet unable to generate a tag by artist area/country, this is insane.

I have found that some talked about making a plugin: No solution from nobody(unable to create a plugin for the solution)?

Your request is totally exact and to the point. (Country of release is not only worthless but also cumbersome, I would say nothing if we could use a “artist country of origin” tag)

Country tag = The only essential tag in a already clean collection
A good assortment start with knowing the artists countries, we all know that, in 2022

This would be really nice to have, but so are a million other things. The amount of developers and their time is limited, so don’t get your hopes up.

Agree. Being realistic, country release is useless for most users… it doesn’t give you any actual info about the music/artist at all.
Artist’s country was one of the big holes I never understood on Picard.

1 Like

+1

I would love to see this too. My custom foobar skin puts a little flag next to the artist’s name if I add an “artistcountry” tag to the metadata. I would love to be able to automate that process.

Also, for the record, I think that releasecountry is very helpful too!

2 Likes

Ooh, that sounds very cool! I must investigate different Foobar skins…

Part of the issue with providing the country information is that it requires a number of recursive calls to the MusicBrainz api to drill down the information. This can cause significant delays in loading an album from MusicBrainz, especially when there are a large number of album or track artists such as you might find on a [Various Artists] release.

I took this as a challenge, and have created a plugin for Picard that provides detailed artist information in a series of new variables. This is available from my github repo, and if anyone wants to try it out I would appreciate any feedback (especially if you find any bugs).


Additional Artists Details [Download]

Overview

This plugin provides specialized album and track variables with artist details such as type, gender, begin and end dates, location (begin, end and current) and country code (begin, end and current) for use in tagging and naming scripts.

NOTE: This plugin makes additional calls to the MusicBrainz website api for the information, which will slow down retrieving album information from MusicBrainz. This will be particularly noticable when there are many different album or track artists, such as on a [Various Artists] release.


What it Does

This plugin reads the album and track metadata provided to Picard, extracts the list of associated artists, retrieves the detailed information from the MusicBrainz website, and exposes the information in a number of additional variables for use in Picard scripts.

Variables Created

  • _artist_{artist_id}_begin - The begin date (birth date) of the artist
  • _artist_{artist_id}_begin_country - The begin two-character country code of the artist
  • _artist_{artist_id}_begin_location - The begin location of the artist
  • _artist_{artist_id}_country - The two-character country code for the artist
  • _artist_{artist_id}_disambiguation - The disambiguation information for the artist
  • _artist_{artist_id}_end - The end date (death date) of the artist
  • _artist_{artist_id}_end_country - The end two-character country code of the artist
  • _artist_{artist_id}_end_location - The end location of the artist
  • _artist_{artist_id}_gender - The gender of the artist
  • _artist_{artist_id}_name - The name of the artist
  • _artist_{artist_id}_sort_name - The sort name of the artist
  • _artist_{artist_id}_type - The type of artist (person, group, etc.)

A variable will only be created if the information is returned from MusicBrainz. For example, if a gender has not been specified in the MusicBrainz data then the %_artist_{artist_id}_gender% variable will not be created.


Example

If you load the release Wrecking Ball (release 8c759d7a-2ade-4201-abc2-a2a7c1a6ad6c) by Sarah Blackwood (artist af7e5ea9-bd58-4346-8f78-d672e9f297f7), Jenni Pleau (artist 07fa21a9-c253-4ed0-b711-d63f7965b723) & Emily Bones (artist 541d331c-f041-4895-b8f2-7db9e27dc5ab), the following variables will be created:

Sarah Blackwood (primary artist):

  • _artist_af7e5ea9_bd58_4346_8f78_d672e9f297f7_begin = “1980-10-18”
  • _artist_af7e5ea9_bd58_4346_8f78_d672e9f297f7_begin_country = “CA”
  • _artist_af7e5ea9_bd58_4346_8f78_d672e9f297f7_begin_location = “Burlington, Ontario, Canada”
  • _artist_af7e5ea9_bd58_4346_8f78_d672e9f297f7_country = “CA”
  • _artist_af7e5ea9_bd58_4346_8f78_d672e9f297f7_disambiguation = “rockabilly, + “Somebody That I Used to Know””
  • _artist_af7e5ea9_bd58_4346_8f78_d672e9f297f7_gender = “Female”
  • _artist_af7e5ea9_bd58_4346_8f78_d672e9f297f7_location = “Canada”
  • _artist_af7e5ea9_bd58_4346_8f78_d672e9f297f7_name = “Sarah Blackwood”
  • _artist_af7e5ea9_bd58_4346_8f78_d672e9f297f7_sort_name = “Blackwood, Sarah”
  • _artist_af7e5ea9_bd58_4346_8f78_d672e9f297f7_type = “Person”

Jenny Pleau (additional artist)

  • _artist_07fa21a9_c253_4ed0_b711_d63f7965b723_country = “CA”
  • _artist_07fa21a9_c253_4ed0_b711_d63f7965b723_gender = “Female”
  • _artist_07fa21a9_c253_4ed0_b711_d63f7965b723_location = “Kitchener, Ontario, Canada”
  • _artist_07fa21a9_c253_4ed0_b711_d63f7965b723_name = “Jenni Pleau”
  • _artist_07fa21a9_c253_4ed0_b711_d63f7965b723_sort_name = “Pleau, Jenni”
  • _artist_07fa21a9_c253_4ed0_b711_d63f7965b723_type = “Person”

Emily Bones (additional artist)

  • _artist_541d331c_f041_4895_b8f2_7db9e27dc5ab_gender = “Female”
  • _artist_541d331c_f041_4895_b8f2_7db9e27dc5ab_name = “Emily Bones”
  • _artist_541d331c_f041_4895_b8f2_7db9e27dc5ab_sort_name = “Bones, Emily”
  • _artist_541d331c_f041_4895_b8f2_7db9e27dc5ab_type = “Person”

Note that variables will only be created for information that exists for the artist’s record.

This could be used to set a %country% tag to the country code of the (primary) album artist with a tagging script like:

$set(_tmp,_artist_$getmulti(%musicbrainz_albumartistid%,0)_)
$set(country,$if2($get(%_tmp%country),$get(%_tmp%begin_country),$get(%_tmp%end_country),xx))
11 Likes

I’ve cleaned up and optimized the plugin a bit. It now provides an option settings panel to allow you to disable processing track artists, which improves the speed immensely if you’re only interested in details for the album artist(s). If you try it out, please let me know if it works for you or if you run into any problems. If there’s enough interest, I will submit it for inclusion in the “official” list of Picard Plugins.

8 Likes

@rdswift : thank you so much for opening the door to tap this valuable information. You’ve made a lot of people happy. Keep up the great work, it is most appreciated.

2 Likes

While I want to thank you a lot, I don’t get how to use the plugin, so excuse my ignorance. I’m just starting with scripting.
What I want to achieve is to add the Country to an artist folder like this:
Uncrowned, The [Japan]

So I have activated the plugin in the plugin option.
What I’m expecting is to be able to use it in the renaming script, is it correct?

So for instance if I add the code you cite in my script like this:

$noop(Replace part is to replace ANY : which don`t work in the path names with a hyphen. The actual substitution is at the end of the script)
$replace(

$noop(Let's start organising the Album Root folder: the artist of the album)
$noop(For any album artists such as The Chemical Brothers, change the folder name to say Chemical Brothers, The.)
$swapprefix($if2(%albumartist%,%artist%),A,An,The,Le) 

$noop(Then let's add the artist Country)
[$set(_tmp,_artist_$getmulti(%musicbrainz_albumartistid%,0)_)
$set(country,$if2($get(%_tmp%country),$get(%_tmp%begin_country),$get(%_tmp%end_country),xx))]/

$noop(Now let's organise the album folder with date and album title)
$if(%date%,\($left(%date%,4)\) )
$if(%albumartist%,%album%) 


$noop(adds bit per sample and sample rate)
[$if(%_bits_per_sample%,%_bits_per_sample%-bit $div(%_sample_rate%,1000) kHz$if(%_source%, %_source%),%_bitrate%kbps)$if(%_source%, %_source%)] [$upper(%_extension%)]

$noop(Adds the catalog number, but if there are any releases that have [none] in the catalog field, then just ignore.)
$if($and(%catalognumber%,$ne(%catalognumber%,[none])), {%catalognumber%})/

$if($gt(%totaldiscs%,1),$if($gt(%totaldiscs%,9),$num(%discnumber%,2),%discnumber%)-,)$if($and(%albumartist%,%tracknumber%),$num(%tracknumber%,2) ,)$if(%_multiartist%,%artist% - ,)%title%

,:,-)

The result I’m obtaining is a folder like this:
Uncrowned, The [ ]
So inside the square parenthesis there is no content.
What am I doing wrong here?

Thanks iin advance!

PS: the album I’m trying to rename is this one: Release “WITNESS” by The Uncrowned - MusicBrainz

I haven’t gone through your script in detail, but it looks like you’re setting the %country% tag, but never actually adding it to the output. Try changing that section of your script from:

$noop(Then let's add the artist Country)
[$set(_tmp,_artist_$getmulti(%musicbrainz_albumartistid%,0)_)
$set(country,$if2($get(%_tmp%country),$get(%_tmp%begin_country),$get(%_tmp%end_country),xx))]/

to:

$noop(Then let's add the artist Country)
$set(_tmp,_artist_$getmulti(%musicbrainz_albumartistid%,0)_)
[$if2($get(%_tmp%country),$get(%_tmp%begin_country),$get(%_tmp%end_country),xx)]/

and see if that does the trick.