如何使用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调用不会返回发布日期。有什么建议?这些错误?报告它的最佳位置在哪里?
答案 0 :(得分:3)
您可以做的第一件事就是不使用搜索API,这有点不灵活(它不支持inc
参数),但如果您已经知道艺术家的MBID,您可以简单地使用browse request: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 with 200 and the You You Bootleg with 300.)
请注意,JSON Web Service仍处于测试阶段 - 如果您只是将fmt=json
更改为fmt=xml
,则您将使用稳定的XML Web服务。
答案 1 :(得分:0)
使用艺术家api,艺术家ID,并指定包含发布组。
http://musicbrainz.org/ws/2/artist/{artistId}?inc=release-groups&fmt=json
例如: http://musicbrainz.org/ws/2/artist/83d91898-7763-47d7-b03b-b92132375c47?inc=release-groups&fmt=json
inc参数可以包含要包括的子项列表。