2017-07-31 7 views
1

私は各トラックのSpotify APIで何らかの種類のユニバーサル識別子を探しています。たとえば、マイケル・ジャクソンによる「スリラー」のトラックを取り出すと、すべてのトラック情報とSpotifyの独自の識別子が得られますが、チェックアウトして食料品店でバナナを購入すると、同等の音楽が4011に相当します。どの店に行っても、バナナを購入するには4011と入力してください。ありがとう!API内にスポットトラックのユニバーサルIDがありますか?

+0

https://github.com/spotify/web-api-auth-examples –

答えて

2

あなたが望むものは実際には存在しませんが、ISRCと呼ばれる識別子があります。これはおそらくあなたが求めるものに非常に近いものです。

https://en.wikipedia.org/wiki/International_Standard_Recording_Code

URIを楽しんでるとこのSpotifyはトラック:トラック:2LlQb7Uoj1kKyGhlkBf9aCは、マイケル・ジャクソンスリラーです。そのトラックのISRCコードを使用すると、ウェブAPIで見つけることができるUSSM19902989、次のとおりです。

$ curl -s -X GET "https://api.spotify.com/v1/tracks/2LlQb7Uoj1kKyGhlkBf9aC" \ 
     -H "Accept: application/json" \ 
     -H "Authorization: Bearer <INSERT ACCESS TOKEN>" \ 
| jq -r .external_ids.isrc 
USSM19902989 

前年比は、マイケル・ジャクソン楽しんでる中(または他のサービス)でスリラーを見つけるために、この識別子を使用することができます。

$ curl -s -X GET "https://api.spotify.com/v1/search?q=isrc%3AUSSM19902989&type=track" \ 
     -H "Accept: application/json" \ 
     -H "Authorization: Bearer <INSERT ACCESS TOKEN>" \ 
| jq -c '.tracks.items[] | {uri, name, album: .album.name, available_markets}' 
{"uri":"spotify:track:1D9KEXIrlmPUkMTdYzqgX4","name":"Thriller","album":"Michael Jackson's This Is It","available_markets":["AD","AR","AT","AU","BE","BG","BO","BR","CA","CH","CL","CO","CR","CY","CZ","DE","DK","DO","EC","EE","ES","FI","FR","GB","GR","GT","HK","HN","HU","ID","IE","IS","IT","JP","LI","LT","LU","LV","MC","MT","MX","MY","NI","NL","NO","NZ","PA","PE","PH","PL","PT","PY","SE","SG","SK","SV","TR","TW","US","UY"]} 
{"uri":"spotify:track:3S2R0EVwBSAVMd5UMgKTL0","name":"Thriller","album":"Thriller 25 Super Deluxe Edition","available_markets":["AD","AR","AT","AU","BE","BG","BO","BR","CA","CH","CL","CO","CR","CY","CZ","DE","DK","DO","EC","EE","ES","FI","FR","GB","GR","GT","HK","HN","HU","ID","IE","IS","IT","JP","LI","LT","LU","LV","MC","MT","MX","MY","NI","NL","NO","NZ","PA","PE","PH","PL","PT","PY","SE","SG","SK","SV","TR","TW","US","UY"]} 
{"uri":"spotify:track:2LlQb7Uoj1kKyGhlkBf9aC","name":"Thriller","album":"Thriller","available_markets":["AD","AR","AU","BE","BG","BO","BR","CA","CL","CO","CR","CY","CZ","DK","DO","EC","EE","ES","FI","FR","GB","GR","GT","HK","HN","HU","ID","IE","IS","IT","JP","LT","LU","LV","MC","MT","MX","MY","NI","NL","NO","NZ","PA","PE","PH","PL","PT","PY","SE","SG","SK","SV","TR","TW","US","UY"]} 
{"uri":"spotify:track:6ZntYOZ44LwdrowjJRzvoQ","name":"Thriller","album":"Michael Jackson: The Ultimate Collection","available_markets":[]} 

あなたがここに戻ってくるのは、マイケルジャクソンによる多くの異なるスリラーのコピーです。彼らは別の市場で入手可能で、スリラーやマイケル・ジャクソンの様々なバージョンのものです。

ISRCコードUSSM19902989は、マイケル・ジャクソンによってスリラーに一意に指摘されていますが、その反対は真ではありません。おそらく、複数のISRCコードがあります。あなたのアナロジーでは、4011は常にバナナを指し示しますが、同じバナナを指すコードがもっとたくさんあるかもしれません。それは問題のように聞こえるわけではありませんが、実際はそうです。トラックの異なるデータベースには、同じISRCが含まれていません。だから、4011は常にバナナを指し示しますが、USSM19902989は常にスリラーだけを指します。しかし、いくつかの店舗では4011は何も指していません。

ここで説明した方法でISRCを使用しても、少し面倒です。 Spotify Web APIを使用してSpotifyユーザー専用のアプリを作成する場合は、市場の可用性やISRCを気にする必要はなく、spotify track urisを送信するだけで済みます。たとえば、spotify:track:2LlQb7Uoj1kKyGhlkBf9aCはドイツでは利用できないようです。しかし、ドイツのSpotifyユーザーがこのトラックを再生しようとすると、Spotifyは代わりにspotify:track:3S2R0EVwBSAVMd5UMgKTL0のような利用可能な代替トラックを再生するため、マイケルジャクソンによるスリラーの声を聞きます。

関連する問題