I've moved this to Web Sources Scripts after the recent fixes. Thanks for keeping this updated.
Hey @nathbot thank you so much for this script. Rateyourmusic is my favorite repository for expanded metadata and I love using this tool to apply it to my library.
I've noticed that with the Descriptors field, there's no spaces between values. Could this be updated to put a space in between the ; character and the next description? If not, programs like foobar will not recognize the multiple fields as distinct, and group them together.
Thank you!
I'm not sure, it's been a while since I used this script, but maybe this will suit you: on line 280 of the "Search by Album" file, replace this line :
Replace ", " ";"
with this:
Replace ", " "\\\\"
There's even a note about this in the file (line 279). You can choose the separator by putting whatever you want between the last " ".
I don't think adding a space behind the semicolon will separate the values, but I'm not sure.
We had a discussion about these separators, which started here.
If I remember correctly, \\ is the Mp3tag separator, so it's the one I put in my settings. I also use foobar2000.
Hi,
sorry I can't play with this at the moment, I haven't been able to start mp3tag even after reinstalling or with a portable version.
But out of curiosity I loaded a few mp3s into my very basic foobar2000 installation, and the "; " separator appears to be correctly interpreted:

I didn't tweak much on it (I'm far too rusty with foobar), all I added to the default config was this:
I see that by default the Genre field is defined as multivalue:
That's a lot of screenshots, all to say... could it simply be a matter of configuring foobar?
I did a quick test and the ; separator was recognized by foobar with mp3s but not with flac files. I mainly use flac files. (recognized by foobar... or it comes from the way Mp3tag saves files, I don't know)

I put the same values in "Genre" in Mp3Tag: AA; BB; CC; DD, and saved.
I used this in my Genre column in foobar: $meta_sep(genre, * ) (reference).
I checked, the "Genre" tag is indeed present in my "Multivalue fields" setting in foobar's advanced preferences.
this worked! Thank you.
Next question for everyone... Is there a good strategy, perhaps bot, to tagging your whole library with this tool? Doing so manually is obviously an option, but seeing if anyone has dabbled in automated ways of doing so.
I know nothing about automation, but considering what's happened to me a few times when I ran the script on many albums in a short time, I tend to think that RYM will automatically (at least temporarily) ban your IP if you ping them for 500 albums in 5 seconds... ![]()
Do you mean Mp3tag or [WS] RateYourMusic with "this tool"?
Anyway, there is no such strategy for your whole library.
There are too much edge cases and exceptions that such an automatism would work.
Just imagine:
It is not possible to guess which song from which album in which release year and from which country do you own and do you want to tag. Is it the LP version? Or the CD version? Or a digital download? Is it a song from a compilation?
Every step involving guessing will ultimately lead to wrong data in your songs.
I've tagged my library manually.
Not what you're looking for, but if anyone's interested... I made an AutoHotkey script that allows me to manually search for the album or artist page in my web browser, instead of doing the search in Mp3tag. The script monitors the clipboard and writes the web address to the Mp3tag source file. It's a bit complicated and really amateurish. If you want, I can share it. It will require some explanation, translation and adjustments to adapt it to your tags.
In foobar, I've also made a button with Run services to launch a search on the Rate Your Music site in my browser, from the selected song. I can also show you the settings if you like.
MusicBee addition (sorry if it's a bit out of topic):
In that spirit, while for tagging I don't know anything more efficient than drag-and-drop from MusicBee onto mp3tag + the RYM script... I sometimes also just want to run a search from MusicBee for the album on RYM.
This can be done by adding a custom web link.
Preferences > Internet > custom web links
using this URL pattern: https://rateyourmusic.com/search?searchterm=<Artist>%20<Album>&searchtype=l
Then it's available on the track's contextual menu: Search > Open in web browser.
Simple stuff but I only became aware of it recently...
Following this wiki there is also this pattern for a direct link:
http://rateyourmusic.com/release/album/$lower($replace($replace($replace(<Artist>"/"<Album>," ",-),"'",),",",-))
but it's probably not 100% reliable for "special" artist/album names.
It would be cool to be able to use the RATEYOURMUSIC ALBUM URL and RATEYOURMUSIC ARTIST URL tags in those web links too, but I haven't found how yet.
I use this in foobar with Run services to open the album page if it's present in my RYM_URL tag (my tag for RateYourMusic Album URL), otherwise search for the artist:
$if2($meta(rym_url),https'://'rateyourmusic.com/search?searchterm=$replace($replace(%artist%,&,'%'26), ,'%'20)&searchtype=a)
This $if2(X,Y) is the same as $if(X,X,Y).
If X contains at least one present field, executes/displays X, otherwise executes/displays Y.
If RYM_URL is present, open it, otherwise open a search url.
I'm not familiar with Musicbee, but maybe with the $IsNull function (or $if and $IsMatch) you can do something like this:
$IsNull(<Tag>,True Result,False Result)
$IsNull(<RateYourMusic Album URL>,Search URL pattern,<RateYourMusic Album URL>)
IsNull : This is a variant of $If for dealing with null values (empty fields). Expressed as $IsNull(<Tag>,True Result,False Result). If the checked tag has any value at all, even 0, you will get the False result. Only if it is blank or non-existent will you get the True result.
I feel like sharing my very obvious tip of the month (maybe the year)...
Sometimes the album has such a generic title that it ends up on page 2 or 3 of the results.
What I do is duplicate the RYM source file, rename it "page 2" (and another one for page 3 for good measure), then just go and change the value of the "page" parameter in the declaration of [IndexUrl] (line 22).
And voilà, I don't have to go edit the one script every time this case occurs.

Sadly, I'm getting a 403 Forbidden error from RYM now (only when calling from mp3tag, the website is fine).
Am I the only one?
I tried changing the URLs to https, to no avail.
I also have a 403: Forbidden error with Mp3tag.
I had a problem going to the site with my browser because of a captcha.
Maybe it's because of that.
I need to disable an extension in my browser (CanvasBlocker) to pass this test, otherwise it reappears in a loop.
Even after passing the captcha in my browser, I still get the 403 error in Mp3tag.
It has something to do with the newest version of mp3tag @nathbot and @User_name . I noticed the issue when i upgraded to 3.26. When i downgraded back to 3.25 the script worked fine again.
I've tried Mp3tag 3.25 and 3.24 with RateYourMusic_20230722, and I still get error 403.
Searching through the RYM forum, I've seen user complaints about the Cloudflare check popping up too often, even during the same browser session. So there must be something fishy going on there. Wait and see...
I have created a script with auto hotkey that copies primary and secondary genres to the clipboard, and then pastes them into Musicbee and seperates the genres with ; . You need to run firefox, and the tag inspector in musicbee has to be a floating window. I can edit the file so it doesn't paste the genres into musicbee, but keeps it in the clipboard.
Great minds think (almost) alike... ![]()
I also created a AutoHotkey script, just less fancy because it was my first AHK script ever.
The process is: I select and copy the two lines of genres and subgenres on RYM, I do Ctrl+Alt+V to convert the content of my clipboard, joining the lines and applying the ; separator. Then I paste in whatever MusicBee window I've opened to fill the Genres field.
If anyone is interested:
^!v:: ; Ctrl+Alt+V
{
A_Clipboard := Trim(A_Clipboard)
A_Clipboard := StrReplace(A_Clipboard, "`r`n", ";")
A_Clipboard := StrReplace(A_Clipboard, ",", ";")
A_Clipboard := StrReplace(A_Clipboard, ";;", ";")
}
But oh how I miss being able to use mp3tag for this...



