1

我目前正在从 musicbrainz 获取所需的信息,使用以下浏览请求,浏览特定艺术家的发布 + 录音。例如:(酷玩)

http://musicbrainz.org/ws/2/release?artist=cc197bad-dc9c-440d-a5b5-d52ba2e14234&fmt=json&inc=recordings

我有兴趣为每个记录获取其工作 ID。现在我尝试将“recording-rels”添加到包含中,但它似乎只是返回发布和录制之间的关系。我还尝试将 'recording-level-rels' 添加到包含,如此处所述 它声明它应该返回记录关系,但是当我尝试使用它时 - 我收到以下错误:

{"error":"recording-level-rels 不是发布资源的有效 inc 参数。"}

我用错了吗?澄清一下,我关注的是你从他们的网站获得的关系,比如从这个页面,每个版本都有录音,其中包含指向 musicbrainz 工作 id 页面的链接。

任何帮助\建议将不胜感激,谢谢。

4

2 回答 2

1

有关关系的 API 文档的链接用于 MBID 查找并且仅适用于它们。所以这在这里工作例如:

http://musicbrainz.org/ws/2/recording/7137bd5b-7f93-40c0-a780-53784a8f6c5d?inc=work-rels

但是在您正在执行的浏览查询中,无法查询此关系。我想你有两个选择:

于 2015-06-10T21:01:50.880 回答
1

好吧,就像您说的:您正在做的是浏览请求,而您链接的关系仅适用于发布查找

因此,您无法通过一个请求获得此信息。对此的简单解决方案是使用:
http
://musicbrainz.org/ws/2/release?artist=cc197bad-dc9c-440d-a5b5-d52ba2e14234 获取所有版本(无录音)和每个版本:
http:// /musicbrainz.org/ws/2/release/bfae6df7-3ee2-4031-ac09-8dc63c6ce6ca?inc=recordings+recording-level-rels+work-rels
获取相关作品。


上述方法的问题是每次发布都需要一个请求。如果你最后做一些匹配,你可以做得更好。您可以通过
http://musicbrainz.org/ws/2/release?artist=cc197bad-dc9c-440d-a5b5-d52ba2e14234&inc=recordings
获取您的录音列表, 并通过以下方式获取录音:http:
//musicbrainz.org /ws/2/work?artist=cc197bad-dc9c-440d-a5b5-d52ba2e14234&inc=recording-rels
使用此信息,您可以将作品与发行版上的录音进行匹配。

或者,您也可以使用
http://musicbrainz.org/ws/2/recording?artist=cc197bad-dc9c-440d-a5b5-d52ba2e14234&inc=work-rels
获取所有录音, 但通常录音较多,作品较少。这意味着并不总是每个录音都附有作品。

注意,这个方法在需要使用limit/offset获取多页结果的时候也需要2个以上的请求。

于 2015-06-11T09:15:34.627 回答