A multi‐source seeder for digital releases

For some reason, the mirror is reporting the following:
Countries excluded (iTunes)
(As of 2021-01-14).
Southern Europe: :albania: Albania (al)
Middle Africa: :sao_tome_principe: Sao Tome and Principe (st)
Southern Asia: :pakistan: Pakistan (pk)
Micronesia: :palau: Palau (pw)

These are Deezer only countries and iTunes never has them there, because they don’t have service there. This should not be showing up. Please remove from iTunes list of countries.

3 Likes

For some reason, a-tiskey is returning an empty tracklist when trying to import this Apple Music-only release: https://music.apple.com/us/album/halloween-ix-dj-mix/1537683913

That happens because it only queries the iTunes API. In order to import an Apple Music exclusive release, access to the Apple Music API is required. See upthread for why this hasn’t been implemented.

1 Like

If it’s Apple Music only it always gives an empty tracklist.

2 Likes

There is actually a fully featured Apple Music API , but you need to be a member of the Apple Developer Program to access it, which costs $99 per year :roll_eyes:

I would also be willing to pitch in for that

Hey atj, thanks for taking up the mantle of preserving and furthering this. I was looking at the landscape and thinking about doing something similar, specifically I was mapping out a Ruby based web service for enabling more people to add data much easier, and expediting the process for those already doing so, and had forgotten all about atisket. At least until tigerman referenced it in a Ninja Sex Party MBz edit the other day, thus I’ve come back to this thread after many months.

I’ve never really been successful as a developer, but I enjoy integration, small scale fixes, infrastructure/hosting, etc. If what you’re doing is able to be collaborated on, I’d love to help out however possible. I’ve been through too many iterations of things like this when a Web Service is the obvious answer.

(https://github.com/murdos/musicbrainz-userscripts/commits?author=VxJasonxV, personal Perl scripts I don’t appear to have git-tracked, https://github.com/VxJasonxV/parse-s3rl-shop-releases in just the last few weeks…)

Would love to talk with you about this and see if/where I can help out.

3 Likes

I just noticed an issue with your mirror, @atj: If I override a release date (with anything besides 0) MB will not read the overridden dates correctly upon import. I get a cascade of this error message for each release event:

Invalid events.204.date.year: “2012–08”.

For reference’s sake, here’s the seeded release I was working with: https://atisket.pulsewidth.org.uk/?cached=05099997384052-d_53644432-s_752JJbPoXDQExzqZGDtrv4-i_720592775

2 Likes

@atj - Just wanted to bring this issue to your attention. For some reason a-tisket is pulling the incorrect release date for this release:

Not sure if the iTunes API is not inline with what is being displayed on the release page but the what is being displayed is that the material was released on November 6, 2015 but what is being pulled is a date of 2015-10-08.

Here is the a-tisket link:

APIs sometimes just have wrong dates, unfortunately. Especially on Apple Music & iTunes because they go by the first date of release, not the actual date of release. I always check against ISRC Search and cross check with other releases.

2 Likes

Isn’t this leading back to the main failing of these Shops and the Data from these Shop APIs. This isn’t about Release dates and Countries. This is about availability in these Shops and which countries these Shops are selling in on the day the API is queried. So if Apple got a different deal to Spotify then that will be shown in the data.

2 Likes

Apple has a style guide for release dates that is incompatible with MusicBrainz.

  1. Dates aren’t based on iTunes availability:

    5.1. Accuracy. Album, track, and music video release dates must be the original date when the album, track, and music video was first released, regardless of country or region, or whether it was released digitally versus physically. This includes Deluxe Editions, Anniversary Editions, Expanded Editions, Bonus Track Editions, Remastered Editions, and so on.

  2. Remasters use incorrect dates:

    3.12. Remastered Versions and New Mixes of Previously Released Recordings. The year of remastering should be included in the title version to properly indicate the version of the master. For example, 2017 Remastered Version. Albums or tracks that are designated as Remastered in the title version should be delivered with the first-known release date of the original version of the recording.

    In cases where an entirely new mix has been created for a previously released album, the album should also be delivered with the first-known release date of the original version of the album. The year of the new mix should also be noted. For example, 2013 Mix.

Whether or not the labels/distributors comply with Apple’s Style is a different story.

I don’t know whether Spotify has any Style, but I know they eradicate parentheses.

4 Likes

Sorry @yindesu, I should not really of added my sarcasm. I just find this all a bit weird with those bizarre lists of “countries”. I am a physical media collector. I see a “Release” in a different way.

All of this digital shop data I find a bit odd. I just randomly threw in the Apple name without knowing what I was talking about. Swap “Apple” for Deezer or whatever the trendy stuff is.

Sorry for the late response @HibiscusKazeneko. I was a bit confused as I couldn’t reproduce this using the release you linked. I tried overriding the date with “2020-01-20” and “2020-01” and they both work fine. However I copied your date and it failed, and then I noticed that you used a “–” (em-dash) as the separator and not a “-” (hyphen).

There should be some sort of validation on manually inputted dates, but in the meantime you can prevent this from recurring by using a hyphen and not a dash as the separator.

1 Like

You’re a fountain of useful knowledge @chaban! Thanks, that DDEX PDF is very interesting. I had to laugh at this sentence:

The best practice for defining “Various Artists” remains unresolved.

:grinning:

1 Like

Nice find! I wonder what the lifetime of that bearer token is? It seems trivial to retrieve one:

> response = Net::HTTP.get(URI.parse('https://music.apple.com/us/browse'))
> doc = Nokogiri::HTML.parse(response)
> json = JSON.parse(CGI.unescape(doc.css('meta[name="desktop-music-app/config/environment"]').attribute('content').value))
> puts json['MEDIA_API']['token']
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IldlYlBsYXlLaWQifQ.eyJpc3MiOiJBTVBXZWJQbGF5IiwiaWF0IjoxNjExMTcxMDI4LCJleHAiOjE2MjY3MjMwMjh9.CYTrF1H3FCjuJkGVf5myX2vsNCKU-wb5kpQC8EpzdEWgd4bg2eaNJRkzWsmb2GU3W3fuzntLyaDJ5eX4wsDMZ

Will have to do some tests with the API!

2 Likes

OK, I managed to get a basic client working. When you visit the Apple Music site, a bearer token for https://amp-api.music.apple.com is generated. This is used by the Apple Music SPA to load releases etc. I haven’t queried the API extensively but it does seem to have the same endpoints as those documented for the Apple Music API.

> AppleMusic.retrieve_bearer_token
> resp = AppleMusic.get("/catalog/us/albums/1489263694")
> tracks = resp['data'].first['relationships']['tracks']['data'].map {|t| t["attributes"]}
> tracks.each {|t| puts "%s - %s [%s]" % [t["artistName"], t["name"], t["isrc"]]}
Cignol - 2 Chord Ponie [DEY471983614]
Cignol - TRumcen [DEY471983615]
Cignol - Public Expenditure [DEY471983616]
Cignol - Teatoaster [DEY471983617]
Cignol - Presence [DEY471983618]
Cignol - Program Shift [DEY471983619]
Cignol - Semiprimes [DEY471983620]
Cignol - Warm Galaxies [DEY471983621]

Unfortunately the API doesn’t return barcodes or provide the ability to search for them, which limits it’s usefulness somewhat.

3 Likes

I wonder if its possible to “enhance” seeder to use it for editing existing releases by adding there missing info from stores?

2 Likes

Is anyone else having trouble searching for a release via Apple Music/iTunes currently?

I’ve been trying to find to “singles” via Apple Music links, for a few weeks now but I get no response…

example: https://music.apple.com/gb/album/smile-single/1525587097

You have to use the mirror if it’s an iTunes/Apple Music exclusive barcode for some reason now.

1 Like

@marlonob, If you’re happy to share code,i’d be interested. Also more than happy to provide a host for the service. Do feel free to contact me (cant work out if/how one can PM you on here)

Ahh, ok, thanks for that. it works now