1

我正在尝试使用 Spotify Web API 在一个响应中返回多个特定结果。

例如,也许我想要 Spotify 的关于迈克尔杰克逊的“Thriller”和 Deep Purple 的“Highway Star”的详细信息。

由于我还没有 Spotify uris,我需要使用 Search 方法。这里有一个描述 Spotify 的高级搜索语法的页面。它们支持针对特定字段进行搜索,例如曲目、艺术家和专辑。它们还支持基本的布尔运算符。

但是该页面(或互联网上的其他任何地方,据我所知)没有任何内容描述布尔运算符优先级的工作原理,或者您如何对搜索条件进行分组。

我需要与(曲目:Thriller AND 艺术家:“Michael Jackson”)或(曲目:“highway star” AND 艺术家:“Deep Purple”)有效相同的东西。

使用类似的标准一次只提取一首曲目是可行的:

http://ws.spotify.com/search/1/track?q=track:"thriller"+AND+artist:"michael+jackson"

我试图直接使用括号,即使文档中没有提到它们。没运气:

ws.spotify.com/search/1/track?q=(track:"thriller"+AND+artist:"michael+jackson")+OR+(track:"highway+star"+AND+artist:"deep+purple ")

然后我想我会尝试优先播放。也许他们不只是从左到右处理 - 也许 OR 都已解决,然后是 AND:

ws.spotify.com/search/1/track?q=track:"thriller"+OR+track:"highway+star"+AND+artist:"michael+jackson"+OR+artist:"deep+purple"

这看起来很有希望,并返回了 185 个结果,但这并不完全正确。我从其他乐队看到了名为“Highway Star”的曲目。这似乎排除了“从左到右”、“OR-before-AND”和“AND-before-OR”。这没有任何意义——还剩下什么?

任何有更多 Spotify 经验的人都可以了解这样的查询应该如何工作吗?

4

1 回答 1

2

不幸的是,Spotify 的 Web API 对此并没有太多支持(我自己试过,结果和你一样)。从外观上看,API 已经开发了几年,所以我不希望有太大的改变。

但是,我强烈建议您改为查看Echo Nest API ;他们支持非常强大的查询,并且在他们的 API 中有很多很棒的东西。此外,他们还支持为搜索结果(曲目、艺术家等)获取 Spotify URI:s 。这意味着您可能完全坚持使用 EN API。

此外,The Echo Nest不断为其 API 添加更多功能,因此它确实成为了音乐的首选 API(远远超过 Last.fm 和类似的 API)。

于 2012-11-27T10:00:02.020 回答