Soundcloud import userscript

I would like to share a userscript I created to import Soundcloud releases:

The import button will show up on the right hand side, below the cover art. If the url already exists within MusicBrainz, the button will open that release. If you have issues, feedback, or questions, leave them here or at the github repo.


I chose a random album from the homepage.
It seems that all albums have just one track?

Anyway, when I click Import, nothing happens.
But the console says:

Uncaught TypeError: Cannot read properties of undefined (reading ‘data’)
SoundCloud: MusicBrainz import.user.js:67

      let soundcloudAlbumData = JSON.parse(response.responseText.split("__sc_hydration =")[1].split(";</script>")[0])[8].data;
  • Windos 10
  • Vivaldi 5.6.2867.50
  • Violentmonkey 2.13.7
1 Like

Hmm, the ‘real’ albums are on users ‘Album’ tab like here: Stream Luv Resval | Listen to music albums online for free on SoundCloud

Does the import script work for you from one of those albums? It works for me.

1 Like

I’m an evil tester. :smiling_imp: Sorry.
I’m on mobile now, buttons don’t appear anywhere.

  • Android 9
  • Kiwi browser 107
  • Violentmonkey 2.13.7
1 Like

I have the same problem. I’m on macOS Ventura 13.1, running Firefox 108.0.2 using Violentmonkey 2.13.5.
I don’t know if this is related to a known problem with this version of Violentmonkey or not, but I strongly suspect it is.

Ah OK, for those it works, on desktop!
Maybe the Import button should not appear on non-albums, as it does not work, anyway.

Which undoes a key reason I downloaded the script: to import singles that don’t exist anywhere else.

Should be fixed now for singles/tracks. I updated the way I was submitting the form and forgot to add it back for singles/tracks.

1 Like

For mobile (, the site is completely different, and the script won’t match those urls. Have you tried requesting the desktop version of the site?

Would it be possible to also extract the label (and drop the artist if it’s equal to the label)?

1 Like

It still doesn’t work for me, even after refreshing the page :confused:
FTR, I’m running Violentmonkey 2.13.7 now, so the injection problems from 2.13.5 are gone.

It does work when we switch to desktop mode.

But I don’t edit digital releases, myself, anyway.
I was just pointing that, in case some day you start editing MusicBrainz on mobile., like me. :wink:

Have you tested Firefox? Because @HibiscusKazeneko has troubles, there.

1 Like

I second this~

another feature would be to add the UPC, if it’s available in the page source. unfortunately I don’t have an example on hand, but perhaps I can find one…


1 Like

Currently, this script requires you to be logged in to Soundcloud. Without being logged in, there is no way to get certain information such as track duration, barcode, etc. This is unfortunate, and I am trying to look for a solution.

Yes, it works for me.

Yes, added.

Also added.


When I try to install it I get
“User script download failed
Ignoring @match pattern* because: Error: @match: Invalid host specified.”

It sounds like you are using Greasemonkey, which does not support wildcards matching in protocol, as well as other features in the userscript. You can switch to another userscript manager, or follow this issue on GitHub until it is resolved.


just added a ticket as well, but I wanted to bring up that this importer does not add a “Download for free” link for native SoundCloud downloads

I believe some artists will also add links to external sites (MediaFire,, Google Drive, etc.), but I don’t know how easy those would be to detect…

I’ve added the “Download for free” URL to the import script.

The links to external sites are classified by Soundcloud as the “Buy-link,” so I think the script should import these as a “purchase for download” link type by default, not “download for free.”


well, that’s not always how the field is used in the wild. a couple examples below of artists using this link for some sort of free download, whether, Bandcamp pages, or others