在 Echo Nest API 中通过 Spotify ID 查询

Posted

技术标签:

【中文标题】在 Echo Nest API 中通过 Spotify ID 查询【英文标题】:Querying by Spotify ID in Echo Nest API 【发布时间】:2016-05-04 04:36:29 【问题描述】:

我有来自 spotify 播放列表的歌曲,需要在 EN 中获取它们的信息。 以 Tania Bowra 的“All I Want”为例。

EN ID(not given):    SOUJWUH13E89D89DED

Spotify ID:          2TpxZ7JUBn3uw46aR7qd6V

Spotify URI:         spotify:track:2TpxZ7JUBn3uw46aR7qd6V

Spotify external ID: AUCR10410001 (isrc)

如果我通过 Spotify 外部 ID 或 EN 中的 Spotify ID 进行查询,例如

$curl -X GET "http://developer.echonest.com/api/v4/song/profile?api_key=my_api_key&id=AUCR10410001&bucket=audio_summary" | python -m json.tool

$curl -X GET "http://developer.echonest.com/api/v4/song/profile?api_key=my_api_key&id=2TpxZ7JUBn3uw46aR7qd6V&bucket=audio_summary" | python -m json.tool

EN API 返回此消息:"id - Invalid parameter: id must be an Echo Nest id or foreign id"

或者如果我通过 Spotify URI 查询,例如

$curl -X GET "http://developer.echonest.com/api/v4/song/profile?api_key=my_api_key&id=spotify:track:2TpxZ7JUBn3uw46aR7qd6V&bucket=audio_summary" | python -m json.tool

我收到此回复:


    "response": 
        "songs": [],
        "status": 
            "code": 0,
            "message": "Success",
            "version": "4.2"
        
    

其中不包含任何信息。

但正如 Spotify 的 website 所说,它应该可以工作。

【问题讨论】:

【参考方案1】:

它适用于修改为“track”的“song”:

$curl -X GET "http://developer.echonest.com/api/v4/track/profile?api_key=my_api_key&format=json&id=spotify:track:2TpxZ7JUBn3uw46aR7qd6V&bucket=audio_summary"

【讨论】:

【参考方案2】:

将“id”替换为“track_id”即可。

例子:

$curl -X GET "http://developer.echonest.com/api/v4/song/profile?api_key=my_api_key&track_id=spotify:track:2TpxZ7JUBn3uw46aR7qd6V&bucket=audio_summary" | python -m json.tool

【讨论】:

以上是关于在 Echo Nest API 中通过 Spotify ID 查询的主要内容,如果未能解决你的问题,请参考以下文章

Echo Nest API:仅将曲目限制为一个桶

Echo Nest API:将用于检查速率限制的 curl 命令转换为 c#

Echo Nest 曲目 ID 到 Spotify URI 的转换

可以根据 Spotify Track ID 创建 Echo Nest Taste Profile 吗?

在 Quickblox 中通过 REST API 过滤用户

在本机反应中通过 rest api 通知