Spotify中的地域限制和链接轨迹

Spotify中的地域限制和链接轨迹,spotify,Spotify,我正在开发一个应用程序,需要知道一首曲目是否可以在用户所在区域播放 使用元数据API很容易检查轨道的基本地域限制。然而,我遇到了元数据API所说的不在我所在区域的曲目,但是它们自动链接到同一曲目的版本,而这些版本没有被区域锁定。元数据说我不能播放曲目,但就用户而言,Spotify可以播放该曲目 下面是一个例子: 由Apparat@spotify:track:4H4h3ulzjGVox14GHiCEoo制作的《甜蜜的骚动》 我在英国(地区代码GB) 查找链接是 产生的区域字符串中没有GB代码,因此

我正在开发一个应用程序,需要知道一首曲目是否可以在用户所在区域播放

使用元数据API很容易检查轨道的基本地域限制。然而,我遇到了元数据API所说的不在我所在区域的曲目,但是它们自动链接到同一曲目的版本,而这些版本没有被区域锁定。元数据说我不能播放曲目,但就用户而言,Spotify可以播放该曲目

下面是一个例子:

由Apparat@spotify:track:4H4h3ulzjGVox14GHiCEoo制作的《甜蜜的骚动》

我在英国(地区代码GB)

查找链接是

产生的区域字符串中没有GB代码,因此理论上,我不能播放该曲目。然而,在主要的Spotify播放器中,我可以看到它是自动链接的,在我所在的地区可以播放。如果我将假定无法播放的曲目的URI粘贴到左上角的Spotify搜索框中,它就会播放


有没有一种基于API的方法来检查这样的曲目?

不幸的是,现在没有。链接实际上是由客户端本身而不是我们的任何后端服务完成的,因此我们的API都没有此信息。

您可以使用每个曲目的未记录属性data.availableForPlayback来检测曲目是否可播放

Track.fromURI("spotify:track:XXX", function(track) {
alert(track.data.availableForPlayback);
});

如果您运行上面的代码,您应该会得到一个符合您要求的真/假。

好的,谢谢。Spotify应用程序API中没有在曲目无法播放时触发的API播放器事件,是吗?我想,你可以在播放器上添加models.EVENT.CHANGE的观察者,然后观察播放属性。看起来有点黑。是的,在这一点上,我启动了一个2秒的计时器(考虑到网络延迟),如果时间到了,它没有播放,我认为它失败了,然后继续。此外,玩家有时会在几分钟前运行过的合法曲目上失败(Spotify会弹出一条“未找到曲目”的黄色状态栏消息)。如果有一个带有某种描述或错误代码的失败事件,则该事件将无法找到
track.data.availableForPlayback
。但是,有一个属性
track.available
,它似乎提供了相同的信息。