Lookup song by ISRC in Apple Music/iTunes

2019-05-31 17:03发布

问题:

I'm developing an iOS application which retrieves a song ISRC from an external source. I then need to use Apple's MusicKit SDK to get the song in Apple Music/iTunes, using the ISRC. Is it possible to do this? The Song resource type has the ISRC in the song attributes which is returned whn you do a GET request for a song, but the request uses the Apple Music song ID to perform the lookup. So can I query Apple Music for a song, using the ISRC instead? Also happy to look it up on the iTunes Search API and then get the ID (I think they're the same across Apple Music and iTunes?) and then query the Apple Music API using that ID.

I also asked this question on the Apple Developer MusicKit forum, but as of yet, no-one has answered me.

回答1:

This was just highlighted at WWDC 2018. You can perform an request directly to the Apple Music API to

GET https://api.music.apple.com/v1/catalog/{storefront}/songs?filter[isrc]=ISRCSTRING

If you are using the new MusicKit JS library, you can perform the lookup with the following JavaScript:

MusicKit.getInstance().api.songs({ filter: { isrc: 'ISRCSTRING' } }).then(function(songs) {
    console.log(songs); // Array of songs matching ISRCSTRING
})


回答2:

Looks like it is available given I see this in the response:

"isrc": "USQX91700278"

For this song request: https://api.music.apple.com/v1/catalog/us/songs/1207120448