当前位置: 首页 > 知识库问答 >
问题:

spotify曲目的API中是否有某种通用ID?

侯涵煦
2023-03-14

我正在Spotify API中为每个音轨寻找某种通用标识符。例如,如果我拿到迈克尔·杰克逊的曲目《颤栗者》,我会得到所有的曲目信息和Spotify自己的唯一标识符,但当你在杂货店结账和买香蕉时,我也会得到相当于4011的音乐。不管你去哪个商店,你总是打4011买香蕉。谢谢!

共有1个答案

曾山
2023-03-14

你想要的并不真正存在,但是有一个叫做ISRC的标识符,它可能非常接近你所要求的。

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

这个Spotify轨道与uri Spotify:轨道: 2LlQb7Uoj1kKyGhlkBf9aC是迈克尔·杰克逊的惊悚片。该轨道的ISRC代码是USSM19902989,您可以在Web API中找到:

$ 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

Yoy可以使用此标识符在Spotify(或其他服务)中查找迈克尔·杰克逊的《颤栗》。

$ 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用户编写应用程序,使用Spotify Web API,则无需关心市场可用性或ISRC,只需发送Spotify track URI即可。例如,spotify:track:2LLQB7UOJ1KKKYGHLKBF9AC在德国似乎不可用。然而,如果德国Spotify用户尝试播放这首曲目,他们仍然会听到迈克尔·杰克逊的《颤栗》,因为Spotify将播放另一首可用的曲目,如Spotify:track:3S2R0EVwBSAVMd5UMgKTL0。

 类似资料:
  • 我将LastFM API中的艺术家、曲目和专辑存储在一个小部件中。我想在用户单击play时播放Spotify歌曲的30秒片段。有可能这样做吗?我正在努力寻找一种方法。。尤其是在没有用户身份验证/权限的情况下。 Spotify应用程序API:播放专辑中的特定曲目 这看起来很有希望,但我不确定这是否是我所说的。。。 如果有人能给我指出正确的方向(使用什么样的API调用),那就太好了!我可以从那里找到剩

  • 使用Spotify Web API的新endpoint/播放器,我们现在可以控制Spotify客户端的播放。endpointhttps://api.spotify.com/v1/me/player/play 我们可以添加一首要播放的歌曲。 我想知道是否有一种方法可以利用新的endpoint向玩家队列中添加一首歌。我计划写一个应用程序,让多个客人请求可以在派对上通过Spotify播放的歌曲。 有人有

  • 我可以通过调用这个网址查看Spotify上的所有曲目: http://ws.spotify.com/search/1/track.json?q=xxx 示例响应包含每个曲目的艺术家数据,如: 从上面的响应中,我得到了艺术家ID:38IfmizrHTCxFjd8UKhWnp。 现在,有没有一种方法可以通过api调用获得上述艺术家(38IfmizrHTCxFjd8UKhWnp)的所有曲目? 我想做的是

  • 我目前正在尝试将Spotify应用程序迁移到api的新1.0版本。 我在搜索方面有问题。我想用搜索字符串搜索目录,并从搜索结果中获取所有曲目信息、艺术家姓名和专辑名称。但是,搜索结果中似乎不包括唱片集名称(仅URI:s)。 之后我是否必须异步加载所有结果曲目的所有唱片集名称?如果可能的话,我想避免这种情况。 我正在这样寻找

  • 所以我看了一下spotify web api,它显然允许您播放歌曲预览,但我想知道是否有任何方法可以播放完整的spotify歌曲,而不必打开官方的spotify web播放器或桌面应用程序。谢谢

  • 我想知道是否可以通过spotify web api从用户当前的活动设备中检测出用户正在听的歌曲。 谢谢。