0

我正在开发一个应用程序,它需要艺术家的名字并列出他/她的所有专辑标题,我正在为此尝试 Gracenote,但是,问题是当我检索前 100 张专辑时,它说:

错误 - GCSP:搜索错误:[22] 搜索:无效范围 START=101:只能访问前 100 个结果

如何获取艺术家的所有歌曲和专辑名称?

    int i = 1;
    int j = 20;
    try
    {
        SearchResult gcSearch;
        do
        {
            var gcClient = new GracenoteClient(GracenoteClientId);
            var criteria = new SearchCriteria
            {
                Artist = "Adele",
                SearchMode = SearchMode.Default,
                Range = new Range(i, j)
            };

            gcSearch = gcClient.Search(criteria);
            foreach (Album album in gcSearch.Albums)
            {
                _tempList.Add(album);
            }
            i = j + 1;
            j = j + 20;
        } while (j < gcSearch.Count);
    } 
4

3 回答 3

0

你可以看看FreeDB

这是另一个音乐元数据数据库;它是CDDB的开放版本。它是为响应 Escient 的行为而成立的,Escient 通过其子公司Gracenote购买了 CDDB 的权利并限制了对数据的访问。

于 2014-10-08T21:48:16.897 回答
0

几乎可以肯定这是一个 API 限制。如果它是一个变化的数字,也许它会是别的东西。但是每次100?那是他们的所作所为。

于 2014-10-08T20:28:19.803 回答
-1

这可能是 Gracenote 对免费帐户施加的限制,但是您是否尝试过使用分页机制?

    var k = client.Search(new SearchCriteria 
       {Artist = "Guns 'n' Roses", Range = new Range(1, 500)};

另请参阅文档:https ://www.parksq.co.uk/gracenote-csharp-api (编辑为使用最新 URL)

于 2018-05-01T17:24:09.610 回答