可以根据Spotify Track ID创建Echo Nest Taste配置文件吗?

时间:2016-03-01 02:04:02

标签: spotify echonest

Echo Nest API应与Spotify ID 100%兼容,但我无法根据Spotify Track ID创建Echo Nest Taste配置文件。

我尝试过以下方法:

创建品味档案

curl -F "api_key={api_key}" -F "type=song" -F "name=spotify-tracks" "http://developer.echonest.com/api/v4/catalog/create"

使用包含曲目​​及其Spotify ID

的json文件更新配置文件
curl -X POST "http://developer.echonest.com/api/v4/tasteprofile/update" -F "api_key={api_key}" -F "id={taste_profile_id}" -F "data=@/spotify-tracks.json"

以下是spotify-tracks.json的内容(只有一个测试轨道):

[
  {
    "action": "update",
    "item": 
    {
        "item_id": "1",
        "track_id": "spotify:track:3HWxpLKnTlz6jE3Vi5dTF2"
    }
  }
]

但是,当我检查更新状态时,它无法解决该轨道:

{
  "response": {
    "items_updated": 1, 
    "percent_complete": 100.0, 
    "status": {
      "code": 0, 
      "message": "Success", 
      "version": "4.2"
    }, 
    "ticket_status": "complete", 
    "total_items": 1, 
    "update_info": [
      {
        "info": "couldn't resolve item", 
        "item_id": "1"
      }
    ]
  }
}

我尝试过多种不同的方式,包括使用' song_id'或' item_id'而不是'track_id'在json输入文件中,创建一个' general'品味简介而不是歌曲' Taste Profile,使用不同的Spotify曲目,以及其他一些变化无济于事。

如果不能使用Spotify Id,我必须单独查询每首曲目以获得ENID,所以我希望我在这里遗漏一些东西。

1 个答案:

答案 0 :(得分:1)

好的,答案是肯定的。问题在于我的JSON输入文件的格式。我应该只使用Spotify跟踪ID作为值,而不是完整的URI。另外,我需要使用" song_id"而不是" track_id"用于将其解析为EN歌曲而不是EN轨道的键。像这样:

[
  {
    "action": "update",
    "item": 
    {
        "item_id": "1",
        "song_id": "SOEGJUJ12AF729D40A"
    }
  }
]

这在Echo Nest文档中并不是很清楚,但我原本应该尝试过这个。