1

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

  1. 使用 Spotify 的 API 使用曲目标题和艺术家姓名搜索歌曲
  2. 从响应中获取曲目的 Spotify URL
  3. 使用 Spotify ID 查询 Echo Nest API 以获取音频摘要

长期以来,这一直运作良好。但是在过去的几个月里,我注意到越来越多的曲目在 Echo Nest API 中找不到给定的 Spotify ID。

这是今天的一个例子。Sufjan Stevens 的单曲“Chicago”

在 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 返回的不一样。)

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

4

1 回答 1

3

我注意到了同样的问题——我所做的是使用 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])
于 2015-11-04T18:14:11.137 回答