A multi‐source seeder for digital releases

The way I’ve been using a-tisket so far, is mostly to start the import off of Bandcamp, Beatport, or JunoDownload, with the corresponding script from https://github.com/murdos/musicbrainz-userscripts and then use a-tisket to deal with the tedium of gathering info from Apple et al. and then I cut & paste the UPC, and the album URLs for each service…

That’s mostly it… I check that the release date is the same, and if the countries are… if there’s about 200 countries I’m just assuming that it’s released XW [Worldwide]… I check the track listing too, and the times… if they don’t match… then I investigate (read closely), and startup a second edit from a-tisket, go to the tracklist tab, click “parse tracks”, and cut the track list, and paste it next to the “parse track” text from the first import, so I can do a side-by-side comparison on the text…

This is much less tedious than what I used to do…

And it’s also much less tedious that doing both imports, and then merging them, and spending a week hoping it all works out.

Oh, and then I do the ISRC import, and check the ISRCs against the tracks on Bandcamp, Beatport, or JunoDownload. I’ve found a few mismatches, but generally everything matches.

I’ve been planning on writing a script that will query Beatport, JunoDownload, Discogs, Bandcamp, Amazon, Psyshop, and Apple iTunes/Music… because those are all the places I search when I add a new release… and it’s really tedious to do a bunch of Googling and Cutting and Pasting, every single time…

Beatport has an API by the way… Bandcamp closed their API down, but you can scrape all the info out of the album or track page… once you find the album or track page… I think Discogs has an API… Amazon probably has something, and whatever it is will probably be a pain to use because it’s Amazon… Juno has an API for vendors, but I’m not sure about a general purpose one. (Bandcamp still has an API for vendors too.) For those, I’m literally just typing the artist’s name and album name into the search field, and using my human brain to figure out which results are the album I’m looking for (created a release for on MB). um, Beatport has ISRC’s on almost everything. It really helps to figure out if two recordings are in fact exactly the same… I’ve accidentally bought the same track two or three times off Beatport, because it appeared on three different compilation albums, and I didn’t realize until after I’d purchased them, that all three WAV files were bit-wise identical. Not just identical ISRCs, but the actual PCM data was exactly the same. (MD5 hashed to the same value).

Oh, but anyway, I got distracted there for a moment… As I was saying about a-tisket… After you add a release though it, there is a page of helpful links, like direct links to the artist’s pages on Apple or Spotify, so you can add those to the artist’s entry on MusicBrainz… Since I rarely actually save any pre-filled a-tisket forms when I’m creating a new release, I can’t get to those links. If they were available on the a-tisket page, before you fill in the form on Musicbrainz, that would be really useful… (Although I don’t know if a-tisket will know the correct artist on MusicBrainz until after you’ve committed to an actual artist on MusicBrainz, cause how would it know? I haven’t looked a-tisket’s source code yet.)

1 Like

… Oh and sometimes also Soundcloud. For older stuff on CD, I check against PsyDB, and CDBaby, and whatever… I’m planning to write a script to create releases for everything on Ektoplasm which doesn’t have one on MB yet… (but I’ve been busy)

But I was going to say about artwork…Generally Bandcamp and Apple iTunes/Music have the highest resolution album artwork. With Bandcamp’s “Original” file, being the actual original file that was uploaded to Bandcamp, with all of the original metadata intact. All of Apple’s image files have been run through some kind of image processing, I haven’t had time to figure out if anything is actually changed in the image, but the metadata is stripped, and the image data is recompressed. Also, sometimes Apple will have a higher resolution image than Bandcamp, and sometimes Bandcamp will have the higher-res image. It seems to depend on whatever the person putting the content on those services happened to do that day. Album artwork on Beatport is terrible, actually lots of things about Beatport are bad… I’ve purchased several albums from them with errors – duplicate and missing tracks – which were not duplicate or missing on Juno or Apple… But they also have a lot of stuff you just can’t find anywhere else… Juno has less albums than Beatport, but more than Apple Music… There’s stuff I just can’t find anywhere on Earth except for Beatport or Juno… I generally prefer JunoDownload to Beatport for stuff that’s only available there, because Juno isn’t a mess, I mean, albums don’t have missing or duplicate tracks like on Beatport, you can buy a whole album in FLAC and not have to pay an extra US$50 for lossless (Beatport charges you extra per track, so if you get one of those “shovelware” trance compilations with 100 tracks, it’s an extra $150 on top of the $15 for just the album for WAVs without metadata, or AIFFs… on Juno, they only a reasonable amount extra to get an album in lossless format…) um, but anyway what was I talking about… So, if you’re buying trance music, my personal preference is to buy it from PsyShop or Bandcamp first, and if they don’t have it, then JunoDownload, and if it’s not there, then Beatport…

Oh yeah, album artwork… Junodownload… all the cover art is 700x700 pixels. I don’t know if it’s possible to get any higher-res… but at least it’s always the correct cover art, unlike Beatport. (Which might just be the record label logo, or a 60x60 pixel jpg blown up to 500x500 pixels, or the cover art of something else entirely… because Beatport is kinda a mess.)

Sometimes, if the record company still has a web site, I might be able to find a high res image of the cover art from a press release or release catalog or something…

You can get the “original” full-sized artwork for a track on Soundcloud by modifying the image filename like this… change the “-t500x500.jpg” to “-original.jpg” or “-original.png”, or “-original.gif”. If you get a 40* error with JPG, the original was probably a PNG, and change the name appropriately…
So…
i1.sndcdn.com/artworks-000001234567-abcdef-t500x500.jpg
Becomes…
i1.sndcdn.com/artworks-000001234567-abcdef-original.png

So far, most of the tracks I’ve tried this with, are not as high as the resolution of the same tracks on Bandcamp, but I’ve only tried this a few times, so it may just be those artists uploading a lower resolution image to Soundcloud or something…

3 Likes

After a release has been added to MB, just use a-tisket to search for its UPC or Deezer/iTunes/Spotify link. It will give you a hint that the release already exists and provide a link to the complementary links page:

5 Likes

If there are no disallowed countries than it is Worldwide. However, there are more than 216 “countries”. Remember, places like Guam, US Virgin Islands, American Somoa, etc. are recognized as different countries. Same goes with many other areas that are technically part of a larger country. This is why you get more than the 195 nations. However, if a release is every country, except the US (of which there are many by Rhino compilations), how can you say it technically is worldwide, if it’s not even in the US? You can say it’s Worldwide, but if someone wants to add all separately, there is nothing wrong with that. Now if there are truly no restrictions, than yes, it’s Worldwide.

4 Likes

Bandcamp, Beatport, etc. are not worldwide. Bandcamp now has label restrictions as well as the others.

From what I remember from the thread talking about this, these restrictions are optional (i.e. they must be implemented by the artist or label). Unless there’s another angle to this I don’t know about, e.g. if Bandcamp is not available in say, China…

I’m still researching this stuff… But I checked MusicBrainz’s own database…
There are 257 rows in the musicbrainz_db.country_area table…
And 258 rows in the musicbrainz_db.iso_3166_1 table…

249 of those are the countries listed in ISO 3166-1:2013
3 of those are the special purpose areas “XE: Europe”, “XK: Kosovo”, and “XW: [Worldwide]
6 of those areas are these countries:

  end_date_year |         name
 ---------------+-----------------------
           2010 | Netherlands Antilles
           2003 | Yugoslavia
           2006 | Serbia and Montenegro
           1991 | Soviet Union
           1990 | East Germany
           1992 | Czechoslovakia
 (6 rows)

I haven’t looked at what Spotify thinks about geography yet… I’ve mostly been seeing lists with only 216 countries… and I don’t know if that’s just all that Spotify has, or if the other 33 countries are where Spotify is never available.

Also, “XK: Kosovo” is the one row missing between 'musicbrainz_db.iso_3166_1` and ‘musicbrainz_db.country_area’, I don’t know what’s up with that.

2 Likes

I’m going to use https://musicbrainz.org/release/b07273cc-8e61-4180-81d1-c57f9723427d as an example, because it has 222 releases (although the MusicBrainz UI shows 3 and hides “218” more under a link, that only adds up to 221. I think it may be a MusicBrainz UI bug.)

So… I want to know: Where is this release NOT available. There’s 27 additional countries in ISO 3166-1:2013

>                      name                     | code
> ----------------------------------------------+------
>  Aruba                                        | AW
>  Faroe Islands                                | FO
>  French Guiana                                | GF
>  French Polynesia                             | PF
>  French Southern Territories                  | TF
>  Gibraltar                                    | GI
>  Greenland                                    | GL
>  Guadeloupe                                   | GP
>  Guyana                                       | GY
>  Haiti                                        | HT
>  Martinique                                   | MQ
>  Mayotte                                      | YT
>  New Caledonia                                | NC
>  Puerto Rico                                  | PR
>  Réunion                                      | RE
>  San Marino                                   | SM
>  Saint Helena, Ascension and Tristan da Cunha | SH
>  Saint Pierre and Miquelon                    | PM
>  Suriname                                     | SR
>  Vatican City                                 | VA
>  Wallis and Futuna                            | WF
>  [Worldwide]                                  | XW
>  Europe                                       | XE
>  Åland Islands                                | AX
>  Guernsey                                     | GG
>  Isle of Man                                  | IM
>  Jersey                                       | JE
>  Saint Barthélemy                             | BL
>  Saint Martin (French part)                   | MF
>  Kosovo                                       | XK
> (30 rows)

Well… Isle of Man only has 25 releases total in all of MusicBrainz… I’m guessing that Spotify doesn’t even recognize it…

Jersey only has 13 releases total in MusicBrainz…

Vatican City only has one release! I don’t think that this is because of regional licensing by record labels…

I don’t think Spotify considers Puerto Rico to be a separate licensing area from the United States…

Oh, I just looked up that singular release at the Vatican… https://musicbrainz.org/edit/65051708 That data came from Deezer

Anyway, I don’t think these countries are explicitly licensed such that these releases are explicitly not available… They’re just not explicitly included in the lists being returned by Spotify and Deezer… because they’re effectively worldwide, but Deezer doesn’t include or exclude the US Territories or the United Kingdom Overseas Territories… or the French département et régions d’outre-mer… at all

2 Likes

This release actually should be Worldwide. The only place disallowed according to Deezer is AN, which is no longer a country.
view-source:https://www.deezer.com/us/album/119032232

So, I would mark this one Worldwide. But, I’m not going to go undue something someone else edited if it’s technically correct.

1 Like

The bug has already been fixed and is in beta testing now. The next release will be on Monday.
When you view your example release on https://beta.musicbrainz.org/release/b07273cc-8e61-4180-81d1-c57f9723427d it already displays (show 219 more).

3 Likes

Now that I’ve used this for a bit, here are some major UI Improvements which I would like:

  1. At the bottom of the “Complementary Links” page, where it says “Artist relationships”, and there’s a list of whichever artists were on this release, in a tiny font… and next to the tiny print, are a set of even smaller icons for Apple Music, Spotify, and Deezer. Moving the mouse pointer, precisely onto one, and then right-clicking, and selecting ‘copy link’, takes a lot of time an fine manual dexterity.
    Presenting those links in a larger, easier to select size, will make it much easier to cut and paste the fields into the MB Artist editor form.
    1b. If it would be possible to just directly open up the edit page, and have the three URLs already filled in, so that the editor just has to read/verify/comment and click “Enter edit”, that would be ideal.
    1c. The tiny pen icon next to the artist name isn’t that obvious for going to the artist’s edit form.
  2. When you do “Search again” after a previous search, it has cleared the Deezer, Spotify, and iTunes ID numbers, but the UPC field hasn’t been cleared, so the user needs to clear it manually before searching again.
  3. Actually everything in the UI is very small and hard to read, and you need to find very small icons to click on to do most tasks. And, it’s difficult to select things, if you just want to cut and paste them.
  4. Additional services to query: Discogs, Google Play, Amazon, PsyShop, Beatport, Juno Download, Soundcloud, um… Beatspace… TraxxSource… Qobuz… there’s a few more… Bandcamp doesn’t really do queries by EAN/UPC… and neither do some of these others… but even just a link to the search page with the artist name and track/album title pre-filled in would save a lot of time. (Amazon does search by UPC I know. And Discogs too, if anyone has actually put the EAN/UPC into discogs for the thing.)
    You can pull the search terms (artist names, catalog numbers, ISRCs, etc.) out from the results from other services, which were queried by EAN/UPC.
2 Likes

Not sure this has been reported, but the logo for this script/page doesn’t load for me. Here is what Brave/Chromium reports:
This page contains the following errors: error on line 5 at column 67: xmlns:ns: '&ns_sfw;' is not a valid URI Below is a rendering of the page up to the first error.

4 Likes

Something I’ve noticed: If a release is only available for streaming on Apple Music (as opposed to purchase in the iTunes Store), querying it via the seeder (via the iTunes API) will return a release with no tracklist. @marlonob, are there any plans to add Apple Music support in the future?

1 Like

The logo doesn’t work in Safari 13.1, I get this error:

This page contains the following errors:

error on line 5 at column 67: xmlns:ns: '&ns_sfw;' is not a valid URI

I get the same error for the favicon as well:

This page contains the following errors:

error on line 5 at column 59: xmlns:ns: '&ns_sfw;' is not a valid URI

Also, as other people have mentioned, the image in the upper left corner of the page doesn’t load.

So, thinking about #2 above, clearing the fields automatically may not actually be a good idea after all, because on quite a few occasions I’ve needed to re-run the exact same query as before… but several minutes later after I’ve added a release on MusicBrainz to get the new MB release to show up on the page… because…

  1. The page of “Complementary links”, doesn’t have a link appear unless there is already a release in MusicBrainz with the same UPC/EAN.

So, most of the time, there’s already a release in MB, but without a UPC… so I look it up manually on MB, and then I use A-Tisket to lookup the Spotify/Deezer/etc. links and UPC… and then I cut and paste those into the existing digital release. (Usually it’s from Bandcamp)

But the link to the page of “Complementary links” doesn’t appear until after there’s something in MB already with a matching UPC, so I need to “Search again” for the exact same thing, again. And then I can get to that page…

  1. On the complementary links page, If the release album artist is “Various Artists” the edit icon goes to the edit page for that special artist… which most editors can’t edit.

As a general UI workflow note, with Chrome on OSX, if I have A-Tasket’s Complementary links page open in one window, and the MB Artist edit form open in another window. I can drag and drop the links from the tiny icons on one window, into the URL fields of the other window. It requires much less dexterity than right-clicking on everything and selecting things while trying not to click them, etc. etc.

Is the code available via Git yet? I’d love to take a look and help out, maybe host another version if your Spotify API key is getting too much use. I’d love to contribute to this project as well. Thanks

7 Likes

Unfortunately the detection of missing artist relationships on the complementary links page has stopped working correctly. It has started to suggest links for all(?) involved artists, regardless whether they are already linked on MB or not.
Can you please fix this @marlonob? An alternative would be to provide the current version of your source code (ideally via Git), because I guess there are a lot of people who love your tool and would like to help improving it. Thank you.

3 Likes

Maybe a bug in relation with recent change made by Apple (iTunes change alert).

No results could be retrieved for this 3 iTunes id:



1 Like

I think that bug may have something to do with the release being an Apple Digital Master. I tried looking up this ID via the seeder, but it didn’t work:


The link, if you open it, shows a release, and the “Also available in the iTunes Store” link works, but running it through the seeder doesn’t.
Fortunately I had already imported a UPC for that release, and I was able to get results by feeding that into the seeder. So if you run into this issue again, you could try searching using the UPC, if you or someone else has already managed to extract it.

1 Like

Anyone have the code that was posted? It seems this link is broken. I’m interested in hosting it on github.

6 Likes