【问题标题】:Last.fm API returns same "white star" image for all artistsLast.fm API 为所有艺术家返回相同的“白星”图像
【发布时间】:2019-05-03 23:41:53
【问题描述】:

最近我遇到了 Last.fm API 的问题,我有一个功能齐全的代码,该代码在 2/3 天前工作,但今天每次尝试从 API 获取艺术家图片都会返回一个数组,在所有图像尺寸上都具有相同的 url所有艺术家。灰色背景白色星形图像。我尝试使用新的 API 密钥创建另一个帐户,以检查我的密钥是否有问题,自从我上次更新 API 相关代码后的几个月但没有成功。

这是代码

    private static final String BASE_URL = "http://ws.audioscrobbler.com/2.0/";
private static final String API_KEY = "123456789";

@Nullable
public static String fetchJson(String url) {


    HttpURLConnection urlConnection = null;
    StringBuilder mStringBuilder = new StringBuilder();

    try {
        urlConnection = (HttpURLConnection) new URL(url).openConnection();

        InputStream mInputStream = new BufferedInputStream(urlConnection.getInputStream());
        BufferedReader mReader = new BufferedReader(new InputStreamReader(mInputStream));

        String line;
        while ((line = mReader.readLine()) != null) {
            mStringBuilder.append(line);
        }

        return mStringBuilder.toString();

    } catch (Exception e) {

        e.printStackTrace();
        return null;

    } finally {
        if (urlConnection != null) urlConnection.disconnect();
    }
}



public static String createArtistURL(String artistName) {
    artistName = artistName.replace("&", "%26");
    // TODO: 03/05/2019  testar isso  URLEncoder.encode(artistName,UTF?); 
    return BASE_URL.concat("?method=artist.getinfo")
            .concat("&artist=").concat(artistName)
            .concat("&lang=").concat(Locale.getDefault().getLanguage())
            .concat("&api_key=").concat(API_KEY)
            .concat("&format=json");
      }

【问题讨论】:

标签: android last.fm


【解决方案1】:

我只能提供一个无用的“我也是”。希望这只是一个错误,而不是 LFM 发布灾难性公告的前兆……

【讨论】:

  • 对问题添加评论而不是答案。
  • Tankyou 与我们分享。看来我们必须找到另一个元数据来源,因为 last.fm 的 API 的上次更新阻止了我们下载图像。坦克到@MorrisonChang 指向API 公告。很明显,这与我的代码甚至 API 代码上的错误无关,所有这些麻烦都是由于 API 更改造成的,我将把我的问题设置为已回答
  • 这真是一种耻辱。他们的 API 使用起来真的很有趣(不能经常这么说)。整个方法签名有点草率,但除此之外,它是我最喜欢的接口。没有艺术家图片,它似乎不完整。
【解决方案2】:

不幸的是,这是intentional change on Last.fm's side

我们已根据我们的 API 使用条款对 API 进行了更改,以限制滥用行为并为所有人改进服务。

虽然我们允许 API 用户通过 API 访问大量数据,但第三方使用音频、视听、图像或艺术品始终违反我们的 API 使用条款。在某些情况下,某些数据可能可以通过少量 API 调用间接访问,因此作为最近 API 清理的一部分,我们已纠正了该异常情况。

如果您的应用受到影响,请参阅我们的 API 使用条款以确保您的合规性。

艺术家图像的替代 API 来自 MusicBrainz。如果您正在处理 Last.fm 数据,您可能已经拥有艺术家的 MBID,您可以像这样查询 (JavaScript example):

【讨论】:

  • Hugo,在您的JavaScript Example 中,如果 MusicBrainz 返回包含来自 Wikimedia Commons 的图像 URL 的关系,则会获取图像。它不会返回许多艺术家的图像 URL,即使他们的图像在 Wikimedia Commons 页面上可用。您能提出任何解决此问题的方法吗?
猜你喜欢
  • 1970-01-01
  • 2015-12-11
  • 1970-01-01
  • 2015-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
相关资源
最近更新 更多