我想找一位艺术家和他们的专辑。因此,阅读此页https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2我创建了以下查询以获取迈克尔杰克逊的专辑
http://musicbrainz.org/ws/2/artist/?query=artist:michael%20jackson?inc=releases+recordings
我的理解是在网址的末尾添加?inc=releases+recordings
,这应该会返回迈克尔杰克逊的专辑,但这似乎没有返回正确的结果,或者我似乎无法缩小搜索范围?然后我想使用{MBID}
但是再次没有在艺术家查询中返回(这就是为什么我试图在我的查询中使用inc
)
http://musicbrainz.org/ws/2/artist/?query=artist:michael%20jackson
有谁可以建议我哪里出错?
答案 0 :(得分:2)
您没有搜索正确的实体。你想要的是获得唱片,而不是艺术家的信息。此外,查询字段语法不正确(您必须使用Lucene Search Syntax)。
以下是您正在寻找的内容:
http://musicbrainz.org/ws/2/release-group/?query=artist:"michael jackson" AND primarytype:"album"
我们正在定位release-group
实体以获取相册,搜索特定的artist
并过滤结果以将其限制为相册。 (接受的价值观是:专辑,单曲,ep,其他)
有更多选项可满足您的需求,例如您可以使用secondarytype
参数过滤相册类型。以下是仅检索实时相册的查询:
http://musicbrainz.org/ws/2/release-group/?query=artist:"michael jackson" AND primarytype:"album" AND secondarytype="live"
这是doc: https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search
请注意,为了能够使用MB的API,您需要了解它的结构,尤其是release_group,release和medium之间的关系。