我正在为Spotify开发一个定制的无线电应用程序,但我无法理解它的链接方法 . 我希望Spotify开发人员可以帮助我 . 例如:
我有一个美国帐户,所以当我尝试访问Spotify URI时:spotify:track:5rDsAMjmB4Qa5WNciJPsfK
正如您在XML上看到的那样,禁止使用此URI:
<track>
<id>b2ee21fccf6845e5a0d72a39bf7752b8</id>
<title>Tubthumping</title>
<artist-id>1d4211ecf9d04ffea26202e010042951</artist-id>
<artist>Chumbawamba</artist>
<album>Playlist: 90s Pop</album>
<album-id>da4ae29b497741bab15a97881ed1b70d</album-id>
<album-artist>Various Artists</album-artist>
<album-artist-id>19334eaffa3f4f2282e251e36611e26f</album-artist-id>
<year>2008</year>
<track-number>19</track-number>
<length>202706</length>
<files>
<file id="87cca4e0822573c3ee8a8a6a04c809b2db9935b6" format="Ogg Vorbis,320000,1,32,4" />
<file id="ac8d8ed1142988bc18df15ac1357990faf3f5afd" format="Ogg Vorbis,160000,1,32,4" />
<file id="c91d6743f49e49f703ce87cfcd5698eb81800a86" format="Ogg Vorbis,96000,1,32,4" />
<file id="94558701f427aff8d68f8149ac3e98e18365cc5f" format="MPEG 1 layer 3,320000,1,32,4" />
</files>
<cover>86bdd0faee722e65034207dd28ed5513f914ef44</cover>
<cover-small>145aaacf5ffb81e38e9e0be24ac9d993a6f31366</cover-small>
<cover-large>1cd206fb15d81dd3f6cde8dd59d89f94e1094104</cover-large>
<popularity>0.63630</popularity>
<restrictions>
<restriction forbidden="AF,AS,BM,CA,GL,GU,KG,MK,MM,MP,PM,PR,PS,UM,US,VA,VI" catalogues="free,daypass,premium"/>
</restrictions>
<external-ids>
<external-id type="isrc" id="DEA349700542" />
</external-ids>
</track>
它被美国禁止,并且没有其他选择 . 但是,在Spotify应用程序上,此文件链接到:spotify:track:2JLRcAkPB8JZIIohZarVTr我可以播放,因为该轨道不是美国帐户禁止的,因为它的XML:
<track>
<id>59f872aa124941ba8facbd3e13cd4ab9</id>
<title>Tubthumping - Radio Edit</title>
<artist-id>1d4211ecf9d04ffea26202e010042951</artist-id>
<artist>Chumbawamba</artist>
<album>All-Star Sports Jams</album>
<album-id>eb030df86f954de1b92630611f497c19</album-id>
<album-artist>Various Artists</album-artist>
<album-artist-id>19334eaffa3f4f2282e251e36611e26f</album-artist-id>
<year>2008</year>
<track-number>8</track-number>
<length>212013</length>
<files>
<file id="099ec6f8bf800e4800d550a99fac75a4ceea2a0a" format="Ogg Vorbis,320000,1,32,4" />
<file id="25965023befa68849e724df3687634060e4679c6" format="Ogg Vorbis,160000,1,32,4" />
<file id="a61e885fe2d2e15e2fe56c0a5111ecac975792b7" format="Ogg Vorbis,96000,1,32,4" />
<file id="0914380378738d8ae4aeba6379ac45dbcd98bc51" format="MPEG 1 layer 3,320000,1,32,4" />
</files>
<cover>2344306830097471b90afe32584677c436c6dc33</cover>
<cover-small>7697a938417a0c585d15dfc5ddd672871e222e5b</cover-small>
<cover-large>517849070de1b127323c7b920a9b4bd321507135</cover-large>
<popularity>0.45674</popularity>
<restrictions>
<restriction allowed="CA,US" catalogues="free,daypass,premium"/>
</restrictions>
<external-ids>
<external-id type="isrc" id="USUR19700191" />
</external-ids>
</track>
这两首曲目如何相互关联?它们是相同的歌曲,但所有属性都不同,甚至 Headers 都不匹配(注意第一个未列为“Radio Edit”) . 我一开始以为它们可能是由它的ISRC连接起来的,但即使是匹配也没有 .
1 回答
对于某些轨道(它们共享ISRC代码),您会在上面的XML中看到一个名为alternative的XML元素(您不应该查看它,因为它不是来自公共API) . 替代元素将包括有关文件ID和限制的信息,因此客户端可以决定在可能的情况下播放这些文件 .
但是,正如您所注意到的,仍然有一些轨道与不同的ISRC代码是“相同的轨道” . Spotify客户端(并非所有客户端)当前都尝试通过执行特殊搜索查询(也不是公共查询)来尝试查找替换项 . 这些查询有点贵,并且每次客户端找到无法播放的曲目时都不会这样做 . 因此,行为不是很确定 . 同一国家/地区的不同用户有时可以玩,有时不玩 . 因此,我们计划删除此客户端链接并移动所有备用逻辑服务器端,但我们还没有这样做 .