4

有没有办法获取艺术家(乐队)的专辑列表,以及专辑封面和运行时的链接?

我得到了这个端点,但它返回的数据令人困惑: http ://musicbrainz.org/ws/2/recording?query=artist:%22Queen%22%20and%20type:album&fmt=json

数据并没有真正围绕专辑进行组织,“长度”数据返回类似 203000 的值。但如果您在上下文中查看它会更好,所以这是它的第一部分(抱歉,我无法缩进):

{
"created": "2018-02-17T03:47:57.052Z",
"count": 9533710,
"offset": 0,
"recordings": [
{
"id": "c2e919f7-ecb9-4fdf-9162-3c26d0127fa0",
"score": "100",
"title": "Son and Daughter",
"length": 203000,
"video": null,
"artist-credit": [
{
"artist": {
"id": "0383dadf-2a4e-4d10-a46a-e9e041da8eb3",
"name": "Queen",
"sort-name": "Queen",
"disambiguation": "UK rock group",
"aliases": [
{
"sort-name": "Queen + Adam Lambert",
"name": "Queen + Adam Lambert",
"locale": null,
"type": null,
"primary": null,
"begin-date": "2011",
"end-date": null
}
]
}
}
],
"releases": [
{
"id": "bb19abaf-80b3-4a3e-846d-5f12b12af827",
"title": "Queen",
"status": "Official",
"release-group": {
"id": "810068af-2b3c-3e9c-b2ab-68a3f3e3787d",
"primary-type": "Album"
},
"date": "1994",
"country": "NL",
"release-events": [
{
"date": "1994",
"area": {
"id": "ef1b7cc0-cd26-36f4-8ea0-04d9623786c7",
"name": "Netherlands",
"sort-name": "Netherlands",
"iso-3166-1-codes": [
"NL"
]
}
}
],
"track-count": 10,
"media": [
{
"position": 1,
"format": "CD",
"track": [
{
"id": "3a26455e-2660-30dc-a652-6a2b40f1fbe5",
"number": "8",
"title": "Son and Daughter",
"length": 203400
}
],
"track-count": 10,
"track-offset": 7
}
]
},
{
"id": "1783da6a-9315-3602-a488-1738eb733a0f",
"title": "Queen",
"status": "Official",
"release-group": {
"id": "810068af-2b3c-3e9c-b2ab-68a3f3e3787d",
"primary-type": "Album"
},
"date": "1973-09-04",
"country": "US",
"release-events": [
{
"date": "1973-09-04",
"area": {
"id": "489ce91b-6658-3307-9877-795b68554c98",
"name": "United States",
"sort-name": "United States",
"iso-3166-1-codes": [
"US"
]
}
}
],

如果有人可以向我解释这些数据,那么我不需要另一个端点。但是我一直在寻找 musicbrainz 文档,但它们并不是很有帮助。

最好是打一个电话,但如有必要,我可以连续打电话。

谢谢你的帮助。

4

2 回答 2

8

首先:

有没有办法获取艺术家(乐队)的专辑列表,以及专辑封面和运行时的链接?

当然是。

首先你会想找到艺术家,比如说,做波西米亚狂想曲的女王。他们被识别为 MusicBrainz 艺术家 ID“ 0383dadf-2a4e-4d10-a46a-e9e041da8eb3 ”,因此您可以对此艺术家的 Releases 进行浏览请求: https ://musicbrainz.org/ws/2/release/?artist= 0383dadf-2a4e-4d10-a46a-e9e041da8eb3&inc=recordings&fmt=json (注意inc=recordings)

这为您提供了您所要求的大部分内容。发布列表及其运行时 - 种类。每个版本都应该有一个或多个medium属性,而这些属性又具有一个track-list带有多个tracks 的属性。这些slength中的每一个的总和构成运行时(以毫秒为单位)。tracklength

对于封面艺术,您可能会注意到输出具有一个cover-art-archive属性。对于封面艺术,MusicBrainz 使用Cover Art Archive,它使用 MusicBrainz ID 作为标识符。该cover-art-archive属性说明封面艺术档案中是否存在任何封面艺术以及有关此的一些细节——例如,CAA 是否有任何图像 ( artwork)?它是否有背面图像 ( back) 和/或正面图像 ( front)?发行版共有多少张图片 ( count)?如果cover-art-archive→<code>artwork 是true,我们可以继续从 CAA 获取封面艺术。CAA 的 API 非常简单:获取版本的“正面”图像,例如 1974 年英国单曲“Killer Queen”,其 MusicBrainz 版本 ID 为“ a2d12ee8-9aeb-4d91-bfab-5c21f7a577fc ”,https://coverartarchive.org/release/a2d12ee8-9aeb-4d91-bfab-5c21f7a577fc/front 你也可以做https://coverartarchive.org/release/a2d12ee8-9aeb-4d91-bfab-5c21f7a577fc来获取 JSON 文档关于哪些封面艺术图像可用的更多详细信息(例如,这个有两张图像:一张正面+中号和一张背面+中号图像)。

封面艺术档案 API 记录在https://musicbrainz.org/doc/Cover_Art_Archive/API和 MusicBrainz API/web 服务文档可以在https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2找到

请注意,使用浏览请求,您可以使用 对结果进行分页,offset并使用 改变每个查询的结果数量limit,请参阅MusicBrainz WS 文档中浏览请求部分下的“分页”部分。


其次:虽然你没有直接问这个问题,但你在问题中使用了一个通用术语的搜索查询,所以我想我会谈谈这个。在 MusicBrainz 中,所有内容都使用MusicBrainz 标识符 (ID)进行标识。(我在第一部分也提到了它们。)

原因是很多很多名字都不是唯一的。在撰写本文时,MusicBrainz 中有三位被称为“女王”的独特艺术家:https ://musicbrainz.org/search?query=%22queen%22&type=artist&method=advanced - 不包括其他 321 位拥有“女王”的艺术家中的任何一位“作为他们名字的一部分。如果没有更多信息,MusicBrainz 不可能知道您想从哪一个中查找信息,因此您的第一步可能是以某种方式缩小搜索范围(例如,将type:group搜索范围缩小到123 个结果,使用country:gb限制21 个结果,同时做11 个结果(有关更多详细信息,请参阅搜索语法文档))或之后以某种方式过滤。

将范围缩小到所需的特定艺术家后,您可以继续执行上述步骤以获取所需的详细信息。缩小范围的步骤将取决于您的特定应用程序/用例。


最后:您似乎在抽象层面对 MusicBrainz 的数据结构有一些缺失的理解。例如,以上所有内容都是假设您所说的专辑是指特定发行版本,例如 1974 年英国“杀手皇后”单曲,而不是像 MusicBrainz 中的“杀手皇后”单曲的任何版本那样更通用的发行概念术语将是发布组。

https://musicbrainz.org/doc/MusicBrainz_Entity是 MusicBrainz 中使用的实体列表。了解 Release Group 和 Release 之间以及 Tracks 和 Recordings(和 Works)之间的区别将使您能够更好地有效使用 Web 服务和一般的 MusicBrainz 数据。

https://musicbrainz.org/doc/MusicBrainz_Database/Schema介绍了 MusicBrainz 的结构。了解艺术家的功劳、(“高级”)关系和媒介是如何影响事物的,也可能会在以后为您省去很多麻烦。

于 2018-02-19T21:22:02.330 回答
0

您需要了解返回数据的格式,将结果复制到 JSON 格式化服务,例如https://jsonformatter.curiousconcept.com/

然后您会意识到返回的数据中有多个艺术家,这就是为什么它不像“艺术家的专辑”那么简单

我猜“长度”数据以毫秒为单位。

于 2018-02-18T00:11:36.043 回答