查询MusicBrainz搜索API并获取指定录制的多位艺术家

时间:2015-01-13 18:45:26

标签: web-services rest musicbrainz

我想让多位艺术家参与指定的录音。假设我有像Pat Metheny这样的(主要)艺术家名字,并且拥有像“Bright Size Life”这样的专辑标题。我想得到其他(2)艺术家的结果(Jaco Pastorius和Bob Moses)。当我以交互方式使用时,网页会显示这两位艺术家,但是当我使用API​​时,响应中只有一位艺术家。

enter image description here

以下是我正在尝试的查询:

http://musicbrainz.org/ws/2/work/?query=bright%20size%20life

http://musicbrainz.org/ws/2/recording?query=Bright%20size%20life

这里只有一位艺术家的结果:

enter image description here

我缺少什么? Thx提前

1 个答案:

答案 0 :(得分:1)

您当前的方法存在一些问题:

  1. 您在第一个屏幕截图中显示的关系是release的关系,而不是recording。录音不会继承它们出现的版本之间的关系,并且有它的理由:应用于录音/曲目的关系与释放本身之间存在语义差异,最好通过查看{{3对于关系(特别是第2,3和4点意味着发布级关系不能自动应用于发布中的所有记录)
  2. There are multiple levels at which an artist's role on a song or album can be noted:
    1. If the relationship is applicable to all tracks on a release, apply it to every work or recording on the release.
    2. If the relationship applies to only a few tracks, and you know which ones, apply it only to those works or recordings.
    3. If you are unsure which tracks a relationship applies to, put it at release level. A basic effort to determine to which tracks the relationship is applicable is appreciated.
    4. If the credit is release level, and does not apply on a track by track basis (e.g. graphic design for the album's cover), then apply the relationship to the release, not the tracks. 
    
    1. 您在第二个屏幕截图中显示的录音是the guidelines,它没有任何关系,也没有显示的版本(所以没有关系信息可以包含在XML响应中。

    2. this one不是search web service的替代品。这意味着并非数据库中的所有可用信息都可通过搜索Web服务获得,尽管可以通过常规服务获得(尽管使用常规信息可能需要先搜索才能获得所需内容的MusicBrainz ID)检索有关的信息。

    3. 因此,回答如何检索第一个屏幕截图(normal one)中的录制信息的问题:从标准Web服务获得的结果(单击"网站上的详情"标签,它将包含一个指向XML表示的链接,this one用于" Bright Size Life")可以更改为包括与艺术家的关系,包括https://musicbrainz.org/ws/2/recording/6cbda46a-4db9-4575-865d-5be479e30b84?inc=artist-credits+releasesartist-rels include argument对于有关系的录音,它会是什么样子)。

      但是,如果您知道该版本的MusicBrainz ID并希望在一个请求中同时获得发布和录制关系,那么这可能并记录在案:

        

      默认情况下,这些' inc =' arguments只会加载请求实体的关系。在加载版本时,您可能希望为其所有录制内容加载关系,并且还可以链接到录制内容。这对于获得完整的发布信用很有用。还有其他参数只能用于发布请求,并允许您指定要加载关系的实体:

      - recording-level-rels
      - work-level-rels
      

      这意味着您可以将artist-relsrecording-level-rels添加到Bright Size Life版本的发布请求(如here's)中,并获取该版本的艺术家关系信息,并显示所有录制内容在它上面。