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=100
、offset=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 获取所有发布组和发布日期的主要内容,如果未能解决你的问题,请参考以下文章
python 从MusicBrainz获取/处理JSON数据