有没有办法获取艺术家(乐队)的专辑列表,以及专辑封面和运行时的链接?
我已经获得了这个端点,但它返回的数据令人困惑: 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"
]
}
}
],
如果有人可以向我解释这些数据,那么我不需要另一个端点。但是我一直在寻找有关音乐脑的文档而且他们并没有超级帮助。
最好是一次通话,但如有必要,我可以连续拨打电话。
感谢您的帮助。
答案 0 :(得分:2)
首先关闭:
有没有办法获取艺术家(乐队)的专辑列表,以及专辑封面和运行时的链接?
是的,当然。
首先,你会想要找到艺术家,比如,做波希米亚狂想曲的女王。它们与MusicBrainz艺术家ID“0383dadf-2a4e-4d10-a46a-e9e041da8eb3”一致,因此您可以为此艺术家发布browse request版本:https://musicbrainz.org/ws/2/release/?artist=0383dadf-2a4e-4d10-a46a-e9e041da8eb3&inc=recordings&fmt=json(请注意inc=recordings
)
这为您提供了大部分要求。发布列表及其运行时类型。每个版本都应包含一个或多个medium
属性,而track-list
属性的track
数量为length
。每个track
的{{1}}之和构成运行时(length
以毫秒为单位)。
对于封面图片,您可能会注意到输出具有cover-art-archive
属性。对于封面艺术,MusicBrainz使用Cover Art Archive,它使用MusicBrainz ID作为标识符。 cover-art-archive
属性指出封面艺术档案中是否存在封面艺术以及有关此的一些细节,例如,CAA是否有任何图像(artwork
)?它是否有背面图像(back
)和/或正面图像(front
)?发布中有多少图像(count
)?如果cover-art-archive
→artwork
为true
,我们可以继续从CAA获取封面图片。 CAA的API非常简单:要获得一个版本的“正面”图像,比如1974年英国单曲“杀手女王”,它有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文档,其中包含有关可用封面艺术图像的更多详细信息(例如,此图像有两个图像:一个正面+中面和一个背面+中间图像)。
Cover Art Archive API记录在https://musicbrainz.org/doc/Cover_Art_Archive/API,而MusicBrainz API /网络服务文档可在https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2
找到请注意,使用浏览请求,您可以使用offset
在结果中进行翻页,并使用limit
更改每个查询的结果数量,请参阅MusicBrainz中浏览请求部分下的"Paging" section WS文档。
其次:虽然你没有直接询问这个问题,但你在问题中使用的是一个通用术语的搜索查询,所以我想我会谈论这个问题。在MusicBrainz中,所有内容都使用MusicBrainz identifiers (IDs)标识。 (我也在第一部分提到了它们。)
原因是很多很多名字并不是唯一的。在撰写本文时,三位在MusicBrainz中被称为“女王”的独特艺术家:https://musicbrainz.org/search?query=%22queen%22&type=artist&method=advanced - 不包括其他321名艺术家中任何一位将“女王”作为其名字的一部分。如果没有更多信息,MusicBrainz无法知道您想从中找到哪些信息,因此您的第一步可能是以某种方式缩小搜索范围(例如,添加type:group
会将搜索范围缩小到{ {3}},对123 results使用country:gb
限制,同时执行21 results(有关详情,请参阅11 results))或以某种方式过滤后。
一旦您将其缩小到您想要的特定艺术家,您就可以继续执行上述步骤以获得所需的详细信息。缩小范围的步骤取决于您的具体应用/用例。
最后:你似乎对于关于MusicBrainz数据结构的提升水平缺乏一些了解。例如,以上所有内容都假设,专辑中你指的是1974年英国“杀手女王”单曲的特定发行版本,而不是任何版本的“杀手女王”单曲的更通用的概念,在MusicBrainz中术语将是一个发布组。
search syntax documentation是MusicBrainz中使用的实体列表。了解发行组和发行版之间以及曲目和录音(和作品)之间的差异将使您更有效地使用Web服务和MusicBrainz数据。
https://musicbrainz.org/doc/MusicBrainz_Entity介绍了MusicBrainz的结构。了解艺术家信用,(“高级”)关系以及媒介如何发挥作用也可能为您节省很多麻烦。
答案 1 :(得分:0)
您需要了解返回数据的格式,将结果复制到JSON格式化服务,例如https://jsonformatter.curiousconcept.com/
然后您会发现在返回的数据中有多个艺术家,这就是为什么它不像“艺术家的专辑”那么简单
我猜测“长度”数据是以毫秒为单位。