musicbrainz api 获取所有发布组和发布日期

Posted

技术标签:

【中文标题】musicbrainz api 获取所有发布组和发布日期【英文标题】:musicbrainz api get all release groups and release dates 【发布时间】:2015-02-16 01:26:26 【问题描述】:

我如何使用 musicbrainz api 在一次通话中获取艺术家的所有发布组和发布日期?我能够做到这一点的最接近的方法是使用:

http://musicbrainz.org/ws/2/release-group?query=arid:494e8d09-f85b-4543-892f-a5096aed1cd4&fmt=json

但是,某些版本组不存在。例如,使用上面的调用,“EP”、“Single + Remix”和一些非官方版本没有出现。基本上,当您转到艺术家主页以获取“所有”版本时,我希望能够生成与 musicbrainz 生成的相同列表:

https://musicbrainz.org/artist/494e8d09-f85b-4543-892f-a5096aed1cd4?all=1

此外,上面的 api 调用不返回发布日期。有什么建议?这些是错误吗?哪里是举报的最佳地点?

【问题讨论】:

【参考方案1】:

你可以做的第一件事是不要使用搜索API,它有点不灵活(它不支持inc参数),但如果你已经知道艺术家的MBID,你可以简单地使用@987654321 @:https://musicbrainz.org/ws/2/release?artist=494e8d09-f85b-4543-892f-a5096aed1cd4&fmt=json&inc=release-groups.

使用inc=release-group 参数,您还可以请求所有版本的版本组信息(您也可以请求其他信息,请查看documentation)。

您还会注意到,虽然 JSON 文档显示 "release-count": 317,但它实际上并未包含所有这些。这是因为浏览请求支持pagination。要获得所有版本,您可以增加限制(通过添加 limit=100),然后执行 3 个额外请求(offset=100offset=200,最后是 offset=300)。 因此,您的最后一个请求是https://musicbrainz.org/ws/2/release?artist=494e8d09-f85b-4543-892f-a5096aed1cd4&fmt=json&inc=release-groups&limit=100&offset=300

(这不是保证结果,但情人节 EP 的偏移量为 100,Say Somethin' & Shake It Off 的偏移量为 200,Without You Bootleg 的偏移量为 300。)

请注意JSON Web Service 仍处于测试阶段 - 如果您只是将fmt=json 更改为fmt=xml,您将使用稳定的 XML Web 服务。

【讨论】:

你是对的。谢谢。经过一天的摸索,我得出了同样的结论。我需要使用浏览请求并对 api 进行多次调用以获取所有结果。我不知道限制和偏移量。以下解释也有帮助:developer.infoconnect.com/paging-results-limit-and-offset 我会研究使用 xml 服务。

以上是关于musicbrainz api 获取所有发布组和发布日期的主要内容,如果未能解决你的问题,请参考以下文章

获取带有 MusicBrainz ID 的专辑曲目列表

python 从MusicBrainz获取/处理JSON数据

Musicbrainz 艺术家形象和信息

Musicbrainz 指纹识别

Use MusicBrainz in iOS查询专辑的完整信息

如何使用 Telnet 获取网页 xml 内容