如何在musicbrainz上的发布浏览请求中检索记录关系

时间:2015-06-10 19:59:10

标签: musicbrainz

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

  

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

我有兴趣为每个记录获取其工作ID。 现在我尝试添加' recording-rels'到包含但似乎只返回释放和录制之间的关系。 我还尝试添加“录制级别相关内容”。如上所述包括here 它声明它应该返回录音关系,但当我尝试使用它时 - 我收到以下错误:

  

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

我错误地使用它了吗? 为了澄清,我在你从他们的网站获得的关系后,从this page说,每个版本都有记录,其中包含一个指向musicbrainz工作ID页面的链接。

非常感谢任何帮助\建议, 谢谢。

2 个答案:

答案 0 :(得分:1)

关于关系的API文档的链接用于MBID查找,仅适用于它们。所以这里的例如:

  

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

但是在你正在做的browse query中,无法查询这种关系。我想你有两个选择:

答案 1 :(得分: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个以上的请求。