我不知道我是否可以在这里提出这样的问题。我的问题如下。
我正在自己制作音乐播放器,我想为那些没有专辑图片的歌曲下载专辑图片。就像N7Music Player正在做的那样。我自己做了一些搜索,我知道使用 MusicBrainz 我们可以下载图像。
我寻找了它的 API,但我没有清楚地得到它。我有以下疑问。
- 如何获取其 API 密钥?
- 它是免费的吗?
- 如果已知艺术家和歌曲名称以获取该歌曲的专辑图像,如何调用 API?
我正在等待您的宝贵回复。
提前谢谢你。
我不知道我是否可以在这里提出这样的问题。我的问题如下。
我正在自己制作音乐播放器,我想为那些没有专辑图片的歌曲下载专辑图片。就像N7Music Player正在做的那样。我自己做了一些搜索,我知道使用 MusicBrainz 我们可以下载图像。
我寻找了它的 API,但我没有清楚地得到它。我有以下疑问。
我正在等待您的宝贵回复。
提前谢谢你。
您需要做的第一件事是确定要从中获取图像的专辑的发布标识符(发布 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>
我写了一个类似问题的答案。
现在有一些库可以在 Android 上使用:
Last.fm 的CoverArtArchiveClient是封面艺术 Web 服务的 Java 数据绑定,musicbrainzws2-java是当前 MusicBrainz Web 服务 (WS/2 = "NGS") 的 Java 绑定。
如果您知道专辑名称和艺术家姓名,那么下面的链接将很有用。它将为您提供图像。