Last.fm API为所有艺术家返回相同的“白星”图像

时间:2019-05-03 23:41:53

标签: android last.fm

最近我在使用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");
      }

2 个答案:

答案 0 :(得分:2)

除了无用的“我也是”,我什么也不能提供。希望这只是一个错误,而不是LFM灾难性宣布的先兆...

答案 1 :(得分:0)

很遗憾,这是一个intentional change on Last.fm's side

  

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

     

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

     

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

用于音乐人图像的替代API来自MusicBrainz。如果您正在处理Last.fm数据,则可能已经具有艺术家的MBID,您可以通过以下方式查询(JavaScript example):