用java下载musicbrainz的封面

时间:2014-02-02 16:39:41

标签: java albumart musicbrainz

我现在正在努力研究如何将discid链接到musicbrainz mbid。

所以,使用dietmar-steiner / JMBDiscId

JMBDiscId discId = new JMBDiscId();

if (discId.init(PropertyFinder.getProperty("libdiscid.path")))
{
    String musicBrainzDiscID = discId.getDiscId(PropertyFinder.getProperty("cdrom.path"));
}

或musicbrainzws2-java

Disc controller = new Disc();
String drive = PropertyFinder.getProperty("cdrom.path"); 

try {
    DiscWs2 disc =controller.lookUp(drive);
    log.info("DISC: " + disc.getDiscId() + " match: " + disc.getReleases().size() + " releases");
....

我可以轻松地(或多或少)为freedb或musicbrainz提取discid,但我还没有找到计算id的方法我需要通过last.fm的CoverArtArchiveClient下载封面。

CoverArtArchiveClient client = new DefaultCoverArtArchiveClient();

try
{
  UUID mbid = UUID.fromString("mbid to locate release");
  fm.last.musicbrainz.coverart.CoverArt coverArt = client.getByMbid(mbid);

从理论上讲,我认为,我可以将musicbrainzws2-java收集的数据用于触发搜索,然后使用结果中的mbid ...但这不是最好的选择。

我很高兴任何进入正确的方向......

干杯, 编

1 个答案:

答案 0 :(得分:0)

您不计算MBID。 MBID附加在从MusicBrainz检索的每个实体上。 通过DiscID获取版本时,您将获得一个列表。每个条目都是一个版本,并且有一个MBID,可以通过getId()访问:

for (ReleaseWs2 rel : disc.getReleases()){
   log.info("MBID: " + rel.getId() + ", String: " + rel.toString());
}

然后,您可能希望为每个版本尝试CoverArtArchive(CAA)并采用您获得的第一个封面艺术。

不幸的是,我不知道网上musicbrinzws2的任何API文档。我建议在所有源文件上运行javadoc