скачать обложку с musicbrainz с помощью java

Я уже пару часов мучаюсь, как связать диск с mbid musicbrainz.

Итак, используя диетитмар-штайнер/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 (более или менее), но я не нашел способа вычислить идентификатор, который мне нужен для загрузки обложки через CoverArtArchiveClient с last.fm.

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 из результата ... но это не лучший вариант.

Я рад любому толчку в правильном направлении...

Привет, Эд.


person user2402987    schedule 02.02.2014    source источник


Ответы (1)


Вы не рассчитываете MBID. MBID прикрепляется к каждому объекту, который вы извлекаете из MusicBrainz. При получении релизов по DiscID вы получаете список. Каждая запись является выпуском и имеет MBID, доступный с помощью getId():

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

Затем вы, вероятно, захотите использовать CoverArtArchive (CAA) для каждого выпуска и брать первую попавшуюся обложку.

К сожалению, я не знаю какой-либо документации API для musicbrainzws2 в Интернете. Я рекомендую запустить javadoc для всех исходных файлов.

person JonnyJD    schedule 03.02.2014