能否根据 Spotify 曲目 ID 创建 Echo Nest 品味档案?
Can an Echo Nest Taste Profile be created based on Spotify Track ID's?
Echo Nest API 应该与 Spotify ID 100% 兼容,但我无法根据 Spotify 曲目 ID 创建 Echo Nest 品味档案。
我试过以下方法:
创建品味档案
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"
}
]
}
}
我尝试了多种不同的方法,包括在 json 输入文件中使用 'song_id' 或 'item_id' 而不是 'track_id',创建 'general' Taste Profile 而不是 'song' Taste Profile,使用不同的 Spotify 曲目,以及其他一些变体都无济于事。
如果不能使用 Spotify Id,我将不得不单独查询每首曲目以获取 ENID,所以我希望我只是遗漏了一些东西。
好的,答案是肯定的。问题出在我的 JSON 输入文件的格式上。我应该只使用 Spotify 曲目 ID 作为值,而不是完整的 URI。此外,我需要使用 "song_id" 而不是 "track_id" 作为键值,以将其解析为 EN Song 而不是 EN Track。像这样:
[
{
"action": "update",
"item":
{
"item_id": "1",
"song_id": "SOEGJUJ12AF729D40A"
}
}
]
这在 Echo Nest 文档中不是很清楚,但我本来应该尝试一下的。
Echo Nest API 应该与 Spotify ID 100% 兼容,但我无法根据 Spotify 曲目 ID 创建 Echo Nest 品味档案。
我试过以下方法:
创建品味档案
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"
}
]
}
}
我尝试了多种不同的方法,包括在 json 输入文件中使用 'song_id' 或 'item_id' 而不是 'track_id',创建 'general' Taste Profile 而不是 'song' Taste Profile,使用不同的 Spotify 曲目,以及其他一些变体都无济于事。
如果不能使用 Spotify Id,我将不得不单独查询每首曲目以获取 ENID,所以我希望我只是遗漏了一些东西。
好的,答案是肯定的。问题出在我的 JSON 输入文件的格式上。我应该只使用 Spotify 曲目 ID 作为值,而不是完整的 URI。此外,我需要使用 "song_id" 而不是 "track_id" 作为键值,以将其解析为 EN Song 而不是 EN Track。像这样:
[
{
"action": "update",
"item":
{
"item_id": "1",
"song_id": "SOEGJUJ12AF729D40A"
}
}
]
这在 Echo Nest 文档中不是很清楚,但我本来应该尝试一下的。