Spotify Spoitfy和Echo嵌套API不匹配,如何修复?

Spotify Spoitfy和Echo嵌套API不匹配,如何修复?,spotify,echonest,Spotify,Echonest,我正在使用Spotify和Echo Nest API获取有关歌曲的音频信息。基本流程是: 使用Spotify的API使用曲目标题和艺术家姓名搜索歌曲 从响应中获取曲目的Spotify URL 使用Spotify ID查询Echo Nest API以获取音频摘要 长期以来,这种方法一直运作良好。但在过去的几个月里,我注意到越来越多的轨迹无法在给定Spotify ID的Echo Nest API中找到 下面是今天的一个例子。Sufjan Stevens的曲目“芝加哥” 在Spotify上搜索它。 第

我正在使用Spotify和Echo Nest API获取有关歌曲的音频信息。基本流程是:

  • 使用Spotify的API使用曲目标题和艺术家姓名搜索歌曲
  • 从响应中获取曲目的Spotify URL
  • 使用Spotify ID查询Echo Nest API以获取音频摘要
  • 长期以来,这种方法一直运作良好。但在过去的几个月里,我注意到越来越多的轨迹无法在给定Spotify ID的Echo Nest API中找到

    下面是今天的一个例子。Sufjan Stevens的曲目“芝加哥”

    在Spotify上搜索它。 第一个结果为我们提供了spotify ID:
    spotify:track:7Bo0xLcXWx3pdhqwthqGaz

    查询此Spotify ID的回显嵌套:

    (对于这个URL,我使用了他们的示例API密钥,因此您可以看到结果。当然,在我的应用程序中,我使用的是我自己的API密钥。)

    响应为“指定的标识符不存在:spotifyv2 ZZ:track:spotify:track:7Bo0xLcXWx3pdhqwthqGaz”

    但是Echo Nest显然在他们的数据库中有这个轨迹,因为我可以搜索它,甚至可以获得Spotify Id:(但是Echo Nest返回的Spotify Id与Spotify返回的Id不同。)


    我有办法解决这个问题吗

    我注意到了同一个问题-我所做的是使用Echo Nest的搜索,这实际上允许您同时执行这两项操作。少一个API调用

    for track in search_tracks:
        results = nest.get('song/search', artist=track['artist'],
            title=track['title'], bucket='audio_summary')
        if results['songs']:
            tracks.append(results['songs'][0])
    

    我终于开始实施这个解决方案。我发现问题也反过来了——我将从EchoNest API搜索中获得正确的结果,但它通常没有Spotify track ID。因此,我必须在Spotify上搜索以找到轨迹。我想双管齐下的搜索是唯一的方法。