A new MusicBrainz user script was released

I’ve got two userscripts to share with you all today.

Bulk copy-paste work identifiers

Quickly import work identifiers (ISWC, agency work codes) from ISWCNet.


ISWCNet is a great resource to find a bunch of work identifiers, but copy-pasting all of them into the work edit page is quite the chore. No more! When installed, it’ll add a button to each work in ISWCNet’s search results, and a button to each work edit/create page in MusicBrainz. Click the button on ISWCNet, switch to the edit page, click the button there, and spend the time you saved in other useful ways.

Find it on GitHub (direct install link).


  • At the moment, the script does not sanitise any IDs, but it does internally normalise them to check for duplicates.
  • Currently, it can only copy data from ISWCNet, but other repertoires can be added.
  • The script is fairly conservative, and will ask for confirmation whenever it detects that there are IDs in MB that aren’t on ISWCNet.
  • Once the button is clicked, the copied data is cleared and cannot be repasted without copying it again. This is intentional, to prevent accidentally reusing data on other work pages.

Display CAA image dimensions

This script has been such a godsend that I honestly forgot that it was a userscript and not built into MB. Displays the dimensions of images on CAA inline, underneath each image.

Can also be found on GitHub (direct install link).


To get these dimensions, the script loads the full-size images in the background. This can be a burden on your network, especially for pages with many images, so loading is deferred until the first time the image is visible on the page (i.e., it won’t load until you scroll to it). In addition, loading is aborted as soon as the dimensions are known, so effectively, only a small portion of the full-size image should actually be transferred for it to work.


MusicBrainz Magic Tagger Button

A user script to improve handling of the green tagger button Open in tagger:



A script that allows you to print your collection on paper sheets, nicely.
Ideal for second hand shops, feal markets, with your what you already own list, in hands:


Announcing not one, not two, but three new userscripts that went live just a little while ago.

1. Supercharged Cover Art Edits

Have you ever noticed the vast amount of empty space on the right hand side of cover art edits? It’s free real estate. Let’s use it to supercharge voting on cover art edits!


  • Displays handy release information (status, packaging, format) on cover art edits, so you can easily check whether a medium scan is added to a digital media release, a square front cover is added to a digipak, or any sort of cover art is added to a pseudo-release.
  • Displays other images inline next to the new or removed image, facilitating checking an image against the rest of the images without opening the cover art tab. Immensily powerful on cover art removals: Check whether a matching replacement image exists without opening other tabs!
  • Can show a pop-up dialog enabling more detailed comparison between two images, either side-by-side, or in overlay mode (hover over the images to switch between two versions).
  • Makes use of resemble.js to calculate similarity between two images and highlight differences, making spotting even the most subtle differences in images child’s play.


Other Tidbits

  • Generating the similarity and differences can be quite expensive, so it’s not done automatically, and requires clicking it when you need it. It’s normal for it to lock up your browser a bit. I have some ideas to make it more responsive, but that would require technologies that aren’t widely supported in browsers yet.
  • Works very well in conjunction with Display CAA Dimensions.

Install here

2. Blind Votes

While voting on edits here, I began to notice potential bias in my reviews. There are often edits where I see a familiar name as the editor and think “Well I’ve never seen this person do a bad edit of this type before, so most likely this one will be fine too and I don’t have to check in depth as much as I usually do.” I decided to try to eliminate some of this bias, so I wrote this little script. It blinds out the editor’s name on open edits on which you have not voted, as well as the names of voters and the votes cast so far (to prevent peer pressure). Whenever you select a vote, the details are unblinded. I’m not sure whether it will provide a better or more reliable voting experience, but it’s a fun experiment nonetheless. Install here.

3. Collapse Work Attributes

Since I’m probably the root cause of the rise in work attributes because of the work code importer, when I saw MBS-11535 and MBS-11537, I felt it to be my duty to provide a userscript as a temporary workaround. Not much else to say here, it does what it says it does :slight_smile: Should work on every page where work attributes are displayed. Install here.

Screenshot 2021-03-30 at 22.06.32

Help! Your Cool Stuff Doesn’t Work!

Problems? Feature requests? File an issue in the GitHub repo or reach out via IRC.



This is amazing…


The work code script gets better and better with every update. Would it be possible to adapt it to the JASRAC service (http://www2.jasrac.or.jp/eJwid/)? It only gives the JASRAC ID and the ISWC, but filling those in + getting JASRAC in the dropdown still slows things down a lot.

QoL userscript.

Upload to CAA From URL (Yes! Really!)

I’ve grown a bit tired of seeing my desktop cluttered with covers of random releases after a short editing session.

And apparently, a bunch of others would like to get rid of that clutter as well (MBS-4641). So I said, no more!


Fairly straightforward: Copy an image URL, paste it in the text box, the userscript will download the image into memory and add it to the upload queue. It’ll attempt to figure out the correct image type via magic numbers (reused from MB’s own implementation) since some sites may use incorrect extensions.

Recommended to use in conjunction with maxurl to get the highest-quality images on various sites.


Tested on FF 90 + ViolentMonkey 2.13.0, YMMV.

Minor technical details

Download blob, turn blob into file, create fake “drop” event containing the file, trigger the drop event on the drop zone to coerce MB into adding it to the queue.

Now, if you’ll excuse me, I have a desktop to declutter.


Works well with Opera for Windows (76.0.4017.107) + Tampermonkey for Opera (4.11.6120)
but I get this warning… I clicked Allow Once and it worked.


It sounds super great! I will use it on Linux.

@Lotheric, this is not needed on Windows, where the file selection dialog already manages URL.

1 Like

it’s one less click!


Hmm, it seems Tampermonkey is warning when a userscript attempts to make a request to another domain, as sort of a CORS mechanism. It’ll probably ask again when entering another URL, or a URL on another domain. I’ve pushed a small update to the script, it’s not going to completely eliminate the problem, but according to Tampermonkey’s docs, it should allow you to click “Always allow all domains”, so that it shouldn’t ask it ever again.


Super excited about this. As you said, I have a giant pile of files sitting around that I downloaded and re-uploaded and then never care about again. :pray:


To celebrate my 1-year anniversary at MB, I’m releasing three smaller QoL userscripts which should hopefully save everyone a lot of time, clicks, and keystrokes. Just a small description of each, no screenshots today, sorry!

QoL: Select All Update Recordings (Install)

Add buttons to the release editor to select all “Update recordings” checkboxes. Differs from the built-in “Select All” checkboxes in that it doesn’t lock the checkboxes to a given state, enabling you to deselect some checkboxes. Comes in quite handy if you need to update most, but not all recording titles.

QoL: Inline all recording’s tracks on releases (Install)

Display all tracks and releases on which a recording appears from a release’s tracklist. Makes it easier to check whether live or DJ-mix recordings are wrongly linked to other tracks. Saves you from having to open each recording separately and check the tracks. Note that they aren’t loaded by default, you can find a new button/link at the top of the tracklist (next to the “expand all mediums”, “display credits inline”, …) to load and display this information.

QoL: Seed the batch recording comments script (Install)

Seed the recording comments for the batch recording comments userscripts with live and DJ-mix data. Can save a bunch of keystrokes when setting live or DJ-mix disambiguation comments. DJ-mix comments are derived from the release title. Live comments are derived from “recorded at place”, “recorded in area”, and “recording of work” advanced relationships. Also uses Unicode punctuation by default. Should be able to handle US states and Canadian provinces. Should also be able to set individual comments when venues and dates differ per track. Note: Please carefully check the suggested comments, I haven’t tested this one in great depth and there are probably many ways things can break. Also requires the batch recording comments script to be installed and enabled, of course.


Superb! :grin::+1:


I have been using this heaps!
I was wondering if it’s feasible to make a couple of improvements?

  1. Add a note in the edit note when this script loads something, with a link to this thread/the script. I want to let people know where they can go to make life easier + it helps troubleshoot if something comes up down the line (I wish all scripts did this x)

  2. Can urls be automatically run through Image Max URL and then the full image loaded? Then I can right click thumbnails to copy the URL, and plug it in directly!
    I currently open all the images in new tabs so that the max image URL script gives me the big URL, and then I plug that in. I end up with a lot of open tabs. I’m being greedy but this would be a dream if it was possible!



Can I make one small suggestion/feature request? After an image has been successfully added, can it clear the input field? This saves having to clear the field manually when adding another image and gives extra visual feedback.


Thanks for the suggestions, both!


Done. Also fills the input link into the edit note.

+1 from me, but at the moment I’m a bit preoccupied with reorganising the code for easier maintenance and easier future development. This would be much easier to implement once that reorganisation is done. Tracking this in Integrate maxurl into the CAA URL uploader · Issue #22 · ROpdebee/mb-userscripts · GitHub.


This is not a new userscripts but it’s my NUMBER ONE USERSCRIPT (of the universe).
I have only just made a first wiki post for tracking discussions and updates about it.


This script shows you what release or recordings (among other MB entities) you already have in your collection(s) or are in other people’s collections, because there is no restriction on user.

Here I can see the albums I have, they have that purple highlight.
The non-highlighted albums, I don’t have them, yet.

Here I can see that in this vinyl edition, there is a bonus truck that I don’t have.
My CD edition does not have this acoustic version, it is not highlighted.

Because all recordings I have will be highlighted everywhere in MB, where they appear.
Same for works, artists, releases, release groups, etc.


It’s the reason why I use MB.
It works on Firefox for Android 68, so I can check if I should buy this or that CD / compilation / special edition, when I am at flee market or second hand CD shop.

It should really be in MusicBrainz code itself, in my opinion:

Please all discussion about mb. COLLECTION HIGHLIGHTER should go to its now dedicated topic, below. :wink:


Image Max URL

Already mentionned in other topics by @IvanDobsky and @aerozol in this very topic, and not specific to MusicBrainz.

Its purpose is simple, it’s to get the full version of images that you see in websites.
It can be useful to get good front covers for digital releases, more easily, for instance.

It’s such a well-written and powerful userscript, it’s incredible!


Batch Add to Collection

Batch add entities to MusicBrainz collection and copy MBIDs from entity pages, search result or existing collections.