【问题标题】:Deezer APsI: example of non-streamable song for country limitation [closed]Deezer APsI:针对国家/地区限制的非流式歌曲示例 [关闭]
【发布时间】:2026-01-10 05:40:01
【问题描述】:

我想测试一个 deezer Web 应用程序,其中的曲目不受国家/地区限制(例如,尝试使用 Deezer Italian 帐户播放仅在英国可用的曲目),以了解系统如何反应并准备好处理此问题一种错误。谁知道我怎样才能得到一个例子?

你知道国家和国家之间的差异(就可用的艺术家/歌曲而言)是否巨大?

谢谢

在 Aurélien 回答后编辑:

1) 使用 Aurélien 的示例,我尝试使用隐形播放器示例 (http://developers.deezer.com/sdk/javascript/example-invisible) 播放来自意大利的三首歌曲,第一首和第三首歌曲在意大利可用,第二首不可用。

<input type="button" onclick="DZ.player.playTracks([60978718,18232696,60978718], 0, function(response){alert(JSON.stringify(response));}  ); return false;" value="Play tracks"/>

发生的情况是客户端没有切换到 30 秒来播放第二首歌曲,而是跳过它(在我看来,这实际上是一种更好的行为);我还注意到,从客户端(我有响应警报)我无法获得有关“可读性”的任何信息,所以如果我查看第二首歌曲的响应,没有什么告诉我这是不可读的意大利,我说的对吗?当然,您可以使用如您展示的 API 服务器调用来获取该信息。

2) 关于代币,问题在于免费增值用户(前六个月的免费用户),他们仍然无法通过他们的代币;这进行了一个简单的 API 调用,例如获取对他们不可用的艺术家(需要令牌)的前 5 首歌曲......

3) 关于“钻石”的例子,你能更好地解释一下吗?这意味着,如果我使用意大利令牌请求 Rihanna 的前 5 首歌曲,并且我得到了带有 id 的 Diamonds,那么该 id 不仅不能流式传输,例如德国,但也有可能这首歌实际上可以在德国流式传输,但前提是我使用另一个(德国)ID?

【问题讨论】:

    标签: deezer


    【解决方案1】:

    [编辑完成/正确答案]

    • 当用户当前所在国家/地区没有曲目时,deezer api 将标记“可读”设置为 falseSDK 播放器会自动跳过该曲目不可用(自动切换到 30 秒预览罢工>)。

    • 国家之间的差异并不大。

    • 如果您想使用 premium 用户的当前国家/地区而不是您服务器的位置,请不要忘记添加 &access_token= TOKEN 在每个请求中。如果您想确保为所有用户(Premium、Freemium 和 unlogged)提供完美的地理定位内容,最好从客户端而不是服务器端请求 api。 仅供参考:我们目前正在审查此行为以对其进行优化和标准化。

    • 同一轨道可以有多个具有不同国家/地区权限的 ID(例如:http://www.deezer.com/fr/track/60978718)。如果您使用意大利令牌向艺术家请求前 5 名,而使用德语令牌请求相同的请求,有时会发生,您拥有相同的歌曲但不同的 id。一个原因是,根据国家/地区的不同,可能会发生相同的歌曲未获得同一唱片公司的许可。

    关于 API 的行为:

    http://api.deezer.com/2.0/track/18232696:该曲目在法国可用,但在德国不可用(抱歉,我没有英国示例)

    来自德国的请求:

    {"id":18232696,"readable":false,"title":"Charmaine","link":"http:\/\/www.deezer.com\/track\/18232696","duration":280,"track_position":6,"disk_number":1,"rank":1,"preview":"http:\/\/cdn-preview-1.deezer.com\/stream\/1451d74b90d3331db9e35a4071b4795c-0.mp3","artist":{"id":379393,"name":"Suckers","link":"http:\/\/www.deezer.com\/artist\/379393","picture":"http:\/\/api.deezer.com\/2.0\/artist\/379393\/image","radio":true},"album":{"id":1713045,"title":"Candy Salad","link":"http:\/\/www.deezer.com\/music\/suckers\/candy-salad-1713045","cover":"http:\/\/api.deezer.com\/2.0\/album\/1713045\/image","release_date":"0000-00-00"},"type":"track"}
    

    来自法国的请求:

    {"id":18232696,"readable":true,"title":"Charmaine","link":"http:\/\/www.deezer.com\/track\/18232696","duration":280,"track_position":6,"disk_number":1,"rank":1,"preview":"http:\/\/cdn-preview-1.deezer.com\/stream\/1451d74b90d3331db9e35a4071b4795c-0.mp3","artist":{"id":379393,"name":"Suckers","link":"http:\/\/www.deezer.com\/artist\/379393","picture":"http:\/\/api.deezer.com\/2.0\/artist\/379393\/image","radio":true},"album":{"id":1713045,"title":"Candy Salad","link":"http:\/\/www.deezer.com\/music\/suckers\/candy-salad-1713045","cover":"http:\/\/api.deezer.com\/2.0\/album\/1713045\/image","release_date":"0000-00-00"},"type":"track"}
    

    关于 SDK 的行为:

    SDK 播放器会自动跳过不可用的曲目。不可用的曲目在当前播放列表/队列中被视为“不存在”。

    PS : 我是 Deezer 团队的一员

    【讨论】:

    • tnx 很多答案;我已经编辑了我的问题,以更好地解释实际发生的情况并询问您更多详细信息。
    • tnx 又是很多 Aurélien;那么您能否确认没有任何方法可以检测到客户端因为 ID 无效而导致播放器跳过歌曲?我知道你们正在改变和标准化关于代币的方法,你们知道什么时候可以为免费增值用户获得代币吗?最后,关于同一首歌的不同 ID,我更愿意关闭这个问题并打开另一个特定的问题,因为主题与原始问题不同,详情请参阅*.com/questions/17276524/…
    最近更新 更多