Извлечение обложек альбомов, как JPEG, PNG и т. Д. - PullRequest
4 голосов
/ 21 декабря 2010

Кто-нибудь может мне сказать, есть ли какой-нибудь простой веб-API, который возвращает обложку альбома в виде изображения, как API статической карты Google ( API статической карты Google ? Я слышал о Amazon и Last.fmAPI для этого, но не могу найти никакого кода для этого (кроме веб-языков, таких как PHP / Perl / Ruby и т. Д.). Более того, они являются API-интерфейсами REST. Любая помощь будет принята.

Есть ли простойURL (GET) запросы или есть только методы REST / XML?

Ответы [ 2 ]

3 голосов
/ 21 декабря 2010

Это не должно быть очень трудно сделать вручную.Спецификация API last.fm для Album.getInfo метода довольно проста, и тот факт, что это API-интерфейс REST, делает его еще проще.Просто получите ответ xml от сервера, проанализируйте его и получите URL изображения.Я написал этот код некоторое время назад, но он все еще должен работать:

            String request = "http://ws.audioscrobbler.com/2.0/?method=" + method +
                    "&api_key="+apiKey;
            request += "&artist=" + artist.replaceAll(" ", "%20");
            if (method.equals("album.getinfo")) request += "&album=" + album.replaceAll(" ", "%20");
            URL url = new URL(request);
            InputStream is = url.openStream();
            DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            Document doc = db.parse(is);

            NodeList nl = doc.getElementsByTagName("image");
            for (int i = 0; i < nl.getLength(); i++) {
                Node n = nl.item(i);
                if (n.getAttributes().item(0).getNodeValue().equals(imageSize)) {
                    Node fc = n.getFirstChild();
                    if (fc == null) return null;
                    String imgUrl = fc.getNodeValue();
                    if (imgUrl.trim().length() == 0) return null;
                    return new ImageIcon(new URL(imgUrl));
                }
            }
0 голосов
/ 21 декабря 2010
...