gpt4 book ai didi

musicbrainz - 从musicbrainz 获取专辑、专辑封面和运行时间信息

转载 作者:行者123 更新时间:2023-12-04 00:32:36 25 4
gpt4 key购买 nike

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

我已经获得了这个端点,但它返回的数据令人困惑:
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 文档,但它们并不是很有帮助。

最好是一次通话,但如有必要,我可以进行连续通话。

谢谢你的帮助。

最佳答案

首先:

Is there any way of getting a list of albums for an artist (band), along with a link to album art and runtime?



当然是。

首先,您需要找到这位艺术家,比如制作波西米亚狂想曲的女王。它们使用 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 )

这为您提供了您所要求的大部分内容。版本列表及其运行时——有点。每个 Release 都应该有一个或多个 medium 属性,这些属性又包含一个 track-list 和许多 track 。每个 lengthtrack 的总和构成了运行时( length 以毫秒为单位)。

对于封面艺术,您可能会注意到输出具有 cover-art-archive 属性。对于封面,MusicBrainz 使用 Cover Art Archive,它使用 MusicBrainz ID 作为标识符。 cover-art-archive 属性说明封面艺术文件中是否存在任何封面艺术以及有关此的一些详细信息——例如,CAA 是否有任何图像( artwork )?它是否有背面图像( back )和/或正面图像( front )?发行版 ( count ) 总共有多少张图片?如果 cover-art-archiveartworktrue ,我们可以继续从 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 文档,其中包含有关可用封面图片的更多详细信息(例如,该图片有两张图片:一张 Front+Medium 和一张 Back+Medium 图像)。

Cover Art Archive 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 文档中浏览请求部分下的 "Paging" section

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

这样做的原因是很多很多名字都不是唯一的。在撰写本文时,MusicBrainz 中有 3 位被称为“女王”的独特艺术家: https://musicbrainz.org/search?query=%22queen%22&type=artist&method=advanced – 不包括将“女王”作为其名字一部分的其他 321 位艺术家中的任何一位。如果没有更多信息,MusicBrainz 就不可能知道您想从中找出哪些信息,因此您的第一步可能是以某种方式缩小搜索范围(例如,添加 type:group 将搜索范围缩小到 123 results ,使用 country:gb 限制到 21 results ,两者都做得到 11 results (更多细节见 search syntax documentation ))或之后以某种方式过滤。

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

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

https://musicbrainz.org/doc/MusicBrainz_Entity 是 MusicBrainz 中使用的实体列表。了解发行组和发行版之间以及轨道和录音(和作品)之间的区别将使您能够更好地有效使用网络服务和一般的 MusicBrainz 数据。

https://musicbrainz.org/doc/MusicBrainz_Database/Schema 介绍了 MusicBrainz 的结构。了解艺术家的信用、(“高级”)关系和媒介如何发挥作用也可能会为您省去很多麻烦。

关于musicbrainz - 从musicbrainz 获取专辑、专辑封面和运行时间信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48847015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com