Spoitfy和Echo Nest API不匹配,如何解决?

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

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

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

    在Spotify上搜索它.http://ws.spotify.com/search/1/track.json?q = artist:sufjan%20track:chicago第一个结果为我们提供了spotify ID: spotify:track:7Bo0xLcXWx3pdhqwthqGaz

    查询此Spotify ID的Echo Nest:http://developer.echonest.com/api/v4/song/profile?api_key=V91CRTEB0IFMAJBMB&track_id=spotify:track:7Bo0xLcXWx3pdhqwthqGaz&bucket=audio_summary

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

    响应是"The Identifier specified does not exist: spotifyv2-ZZ:track:spotify:track:7Bo0xLcXWx3pdhqwthqGaz"

    但Echo Nest显然在他们的数据库中有这条曲目,因为我可以搜索它,甚至可以得到Spotify ID:http://developer.echonest.com/api/v4/song/search?api_key=V91CRTEB0IFMAJBMB&format=json&results=1&artist = sufjan&title = chicago&bucket = id:spotify&bucket = tracks(但Echo Nest返回的Spotify ID与Spotify返回的不一样。)

    有什么办法可以解决这个问题吗?


    我注意到同样的问题 - 我所做的是使用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])
    
    链接地址: http://www.djcxy.com/p/55597.html

    上一篇: Spoitfy and Echo Nest API Mismatches, How to Fix?

    下一篇: cURL PHP vs cmd