如何使用musicbrainz获取专辑图像

时间:2012-11-19 12:19:05

标签: android android-music-player albumart

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

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

我找了它的API,但我没弄清楚。我有疑虑。

  1. 如何获取其API密钥?
  2. 是免费的吗?
  3. 如果知道艺术家和歌曲名称可以获取该歌曲的专辑图像,如何调用API?
  4. 我在等待您的宝贵回应。

    提前感谢你。

3 个答案:

答案 0 :(得分:13)

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

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

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

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

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

这会给你一个带有可用图像列表的json响应(如果该版本在coverartarchive中没有封面,则为404)。

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

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

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

<relation type="cover art link">
    <target>http://liveweb.archive.org/http://www.8bitpeoples.com/images/albums/large/8BP049.gif</target>
</relation>

答案 1 :(得分:1)

我写了similar question的答案。

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

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

答案 2 :(得分:0)

如果您知道相册名称和艺术家姓名,则下面的链接将非常有用。它将为您提供图片。

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