4

我不知道我是否可以在这里提出这样的问题。我的问题如下。

我正在自己制作音乐播放器,我想为那些没有专辑图片的歌曲下载专辑图片。就像N7Music Player正在做的那样。我自己做了一些搜索,我知道使用 MusicBrainz 我们可以下载图像。

我寻找了它的 API,但我没有清楚地得到它。我有以下疑问。

  1. 如何获取其 API 密钥?
  2. 它是免费的吗?
  3. 如果已知艺术家和歌曲名称以获取该歌曲的专辑图像,如何调用 API?

我正在等待您的宝贵回复。

提前谢谢你。

4

4 回答 4

13

您需要做的第一件事是确定要从中获取图像的专辑的发布标识符(发布 MBID),您可以使用搜索 API 来执行此操作,例如:

http://www.musicbrainz.org/ws/2/recording/?query=artist:nikes+recording:ftg2

因为它是一个搜索,你会得到很多结果,其中一些是错误的。在这种情况下,第一个结果是正确的并且只匹配一个版本,它具有以下 MBID:“c04730ea-87cb-478b-a256-08c0561d20e6”。

现在您有了一个标识符,您可以在封面存档中进行查找:

http://coverartarchive.org/release/c04730ea-87cb-478b-a256-08c0561d20e6/

这将为您提供包含可用图像列表的 json 响应(如果该版本在封面存档中没有封面艺术,则为 404)。

然而,封面档案是相当新的,可能并不总是有封面艺术。MusicBrainz 有时有一个封面艺术的链接,您可以通过在 Web 服务请求中包含“url-rels”来查找它,例如对于发布 MBID“fdfdb3c0-8820-4c22-94e6-6aa136e36c31”,您可以执行此请求:

http://musicbrainz.org/ws/2/release/fdfdb3c0-8820-4c22-94e6-6aa136e36c31?inc=url-rels

在输出中,您将看到图像的 url:

<relation type="cover art link">
    <target>http://liveweb.archive.org/http://www.8bitpeoples.com/images/albums/large/8BP049.gif</target>
</relation>
于 2012-11-19T17:43:21.360 回答
2

根据您感兴趣的语言,这可能已为您完成。这里有一个 C/C++ 库:

http://musicbrainz.org/doc/libcoverart

安迪

于 2012-11-19T19:29:54.470 回答
1

我写了一个类似问题的答案。

现在有一些库可以在 Android 上使用:

Last.fm 的CoverArtArchiveClient是封面艺术 Web 服务的 Java 数据绑定,musicbrainzws2-java是当前 MusicBrainz Web 服务 (WS/2 = "NGS") 的 Java 绑定。

于 2013-04-13T11:49:25.033 回答
0

如果您知道专辑名称和艺术家姓名,那么下面的链接将很有用。它将为您提供图像。

http://www.radiodj.ro/community/index.php?topic=1895.0

于 2013-01-16T08:34:06.373 回答