【问题标题】:Territory restrictions and linked tracks in SpotifySpotify 中的地区限制和链接曲目
【发布时间】:2012-02-17 11:25:43
【问题描述】:

我正在构建一个应用程序,它需要知道曲目是否可以在用户所在地区播放。

使用元数据 API 可以轻松检查赛道的基本地域限制。但是,我遇到了元数据 API 说不在我的区域内的曲目,但它们会自动链接到未锁定区域的同一曲目的版本。 IE。元数据显示我无法播放曲目,但就用户而言,Spotify 可以播放该曲目。

这是一个例子:

Apparat @ spotify:track:4H4h3ulzjGVox14GHiCEoo 的“甜蜜动荡”

我在英国(地区代码 GB)

查找链接是http://ws.spotify.com/lookup/1/.json?uri=spotify:track:4H4h3ulzjGVox14GHiCEoo

生成的区域字符串中没有 GB 代码,所以理论上我应该无法播放该曲目。但是,在主 Spotify 播放器中,我可以看到它自动链接到在我所在地区可播放的 spotify:track:11S6TQybYumAnNApugZWSJ。如果我将本应无法播放的曲目的 URI 粘贴到左上角的 Spotify 搜索框中,它就会播放。

是否有基于 API 的方法来检查此类曲目?

【问题讨论】:

    标签: spotify


    【解决方案1】:

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

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

    如果你运行上面的代码,你应该得到一个 True/False 来做你所追求的。

    【讨论】:

    • 找不到track.data.availableForPlayback。但是,有一个属性 track.available 似乎提供了相同的信息。
    【解决方案2】:

    很遗憾,目前不是。链接实际上是由客户端自己完成的,而不是我们的任何后端服务,所以我们的 API 都没有这些信息。

    【讨论】:

    • 好的,谢谢。如果曲目无法播放,则不会触发 API 播放器事件,是吗?
    • 在 Spotify 应用程序 API 中?我猜您可以在播放器上添加 models.EVENT.CHANGE 的观察者,然后观看播放属性。请注意,这似乎有点 hacky。
    • 是的,此时我启动了一个 2 秒计时器(以允许网络延迟),如果时间到时它没有播放,我认为它已经失败并继续前进。此外,播放器有时会在几分钟前运行的合法曲目上失败(Spotify 会弹出“未找到曲目”黄色状态栏消息)。有一个带有某种描述或错误代码的失败事件会很高兴
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多