【问题标题】:Querying MusicBrainz search API and get multiple artists for the specified recording查询 MusicBrainz 搜索 API 并获取指定录音的多个艺术家
【发布时间】:2015-01-13 18:45:26
【问题描述】:

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

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

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

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

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

我错过了什么? 提前谢谢

【问题讨论】:

    标签: web-services rest musicbrainz


    【解决方案1】:

    您当前的方法有几个问题:

    1. 您在第一个屏幕截图中显示的关系是release 的关系,而不是recording。录音不继承它们出现的版本的关系,这是有原因的:应用于录音/曲目的关系与版本本身之间存在语义差异,最好通过查看the guidelines 来描述关系(特别是点2、3 和 4 表示版本级别的关系不能自动应用于版本中的所有录音)
    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. 您在第二个屏幕截图中显示的记录是this one,它没有任何关系,它出现的版本也没有(因此没有关系信息可以包含在 XML 响应中)。

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

    所以,回答如何在您的第一个屏幕截图(即this one)中检索有关录制信息的问题:您从标准 Web 服务获得的结果(单击“详细信息”选项卡上的网站,它将包含一个指向 XML 表示的链接,即“Bright Size Life”的https://musicbrainz.org/ws/2/recording/6cbda46a-4db9-4575-865d-5be479e30b84?inc=artist-credits+releases)可以通过包含artist-rels include argumenthere's 它看起来像什么)来更改以包括与艺术家的关系确实有关系的录音))。

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

    默认情况下,这些“inc=”参数只会加载请求实体的关系。在加载版本时,您可能希望加载其所有录音的关系以及链接到录音的作品。这对于获得完整的发行学分很有用。还有一些附加参数只能用于发布请求,并允许您指定要为哪些实体加载关系:

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

    这意味着您可以将 artist-relsrecording-level-rels 添加到 Bright Size Life 版本的发布请求(如 https://musicbrainz.org/ws/2/release/b60d1bc5-a18c-38ca-a26b-6e040d5d7acb?inc=artist-credits%2Bdiscids%2Blabels%2Brecordings+recording-level-rels+artist-rels)中,并获取该版本和其中出现的所有录音的艺术家关系信息。

    【讨论】:

    • 感谢您的明确答复。同时我意识到我误解了发行/录制实体。相反,我使用的是发布组/发布。你的回答很明确,很清楚获得发布的艺术家名单,这就是我真正想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    相关资源
    最近更新 更多