如何在 Spotify 上获取艺术家的所有歌曲?

Posted

技术标签:

【中文标题】如何在 Spotify 上获取艺术家的所有歌曲?【英文标题】:How To Get All Songs of An Artist on Spoitfy? 【发布时间】:2017-02-22 13:47:12 【问题描述】:

在他们获取艺术家热门曲目的文档中,他们提到了这一点:

最多 10 首曲目是 Spotify 应用程序显示的曲目。如果您想获取更多艺术家的热门曲目,另一种方法是使用 Echo Nest 歌曲/搜索来完成此操作。它将接受 Spotify 艺术家 ID 作为输入,并在输出中为您提供 Spotify id。

我很确定 Echo Nest Api 不再存在,所以我想知道是否还有其他方法可以获取除 10 首以外的艺术家的歌曲吗?

另外,如果 Spotify 不再支持该功能,我正在考虑使用 Last.fm 的 Api 来实现,如果有人对如何解决这个问题有任何其他建议,那就太好了!提前致谢。

【问题讨论】:

【参考方案1】:

我认为您无法通过 Spotify 中的单个 API 调用来实现它。不过还有一个选择:

请求一个艺术家的所有专辑(看看here):

https://api.spotify.com/v1/artists/id/albums

然后请求每张专辑的曲目(看看here):

https://api.spotify.com/v1/albums/id/tracks

为避免对一张专辑的请求,您可以一次获取多张专辑,当请求一张专辑时,该专辑的曲目将在paging object 中返回。您可以将id 查询参数中以, 分隔的所需专辑标识符传递到以下端点(查看here):

https://api.spotify.com/v1/albums

【讨论】:

这绝对是非常有帮助的,所以谢谢你......但是如果艺术家发行了不在专辑中的歌曲,那我们该怎么办? @user3241894 据我所知,在 Spotify 中,song (track) 属于 album 并且相册有 3 种类型:albumsinglecompilation。当艺术家发行一首歌曲时,这首歌是专辑的一部分,专辑类型为single。使用API console 了解更多详情。【参考方案2】:

对我来说更充分的解决方案是:

https://api.spotify.com/v1/search?type=track&q=artist:ArtistName

这将返回该艺术家的热门歌曲,分页肯定超过 10 个结果。

唯一需要注意的是,这包括艺术家可能出现在其中的歌曲,但我认为这真的很有用,就好像它是您的用户可能正在寻找的流行歌曲一样。

【讨论】:

以上是关于如何在 Spotify 上获取艺术家的所有歌曲?的主要内容,如果未能解决你的问题,请参考以下文章

Spotify API GET 请求到 JSON

Spotify API:获取歌曲播放次数、总小时数等

Spotify 和 Echo Nest API 不匹配,如何修复?

如何从文件创建 Spotify 播放列表

通过 spotify 发送歌曲信息

如何在 Spotify APi 上获取播放列表的歌曲推荐