如何使用musicbrainz获取专辑图像

Rah*_*952 3 android albumart android-music-player

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

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

我寻找它的API,但我没有清楚地了解它.我有疑虑.

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

我在等你的宝贵回应.

提前感谢你.

war*_*arp 13

您需要做的第一件事是找出要从中获取图像的相册的版本标识符(版本MBID),您可以使用搜索API执行此操作,例如:

http://www.musicbrainz.org/ws/2/recording/?query=artist:nikes+recording:ftg2
Run Code Online (Sandbox Code Playgroud)

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

现在你有了一个标识符,你可以在coverartarchive上进行查找:

http://coverartarchive.org/release/c04730ea-87cb-478b-a256-08c0561d20e6/
Run Code Online (Sandbox Code Playgroud)

这将为您提供一个json响应,其中包含可用图像列表(如果该版本在coverartarchive中没有封面,则为404).

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

http://musicbrainz.org/ws/2/release/fdfdb3c0-8820-4c22-94e6-6aa136e36c31?inc=url-rels
Run Code Online (Sandbox Code Playgroud)

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

<relation type="cover art link">
    <target>http://liveweb.archive.org/http://www.8bitpeoples.com/images/albums/large/8BP049.gif</target>
</relation>
Run Code Online (Sandbox Code Playgroud)