我已经弄清楚了URL是https://spclient.wg.spotify.com/color-lyrics/v2/track/${TRACK_ID}?format=json&vocalRemoval=false
并且它需要两个头文件:app-platform: WebPlayer和authorization: Bearer TOKEN。
因此,使用curl,我能够获取歌词信息,如下所示:
$ TRACK_ID=3z8h0TU7ReDPLIbEnYhWZb
$ BEARER_TOKEN=xxxxxxxxxxxxxx
$ curl "https://spclient.wg.spotify.com/color-lyrics/v2/track/${TRACK_ID}?format=json&vocalRemoval=false" -H "app-platform: WebPlayer" -H "authorization: Bearer ${BEARER_TOKEN}"
{
"lyrics": {
"syncType": "LINE_SYNCED",
"lines": [
{
"startTimeMs": "110",
"words": "Is this the real life? Is this just fantasy?",
"syllables": [],
"endTimeMs": "0"
},
{
"startTimeMs": "6990",
"words": "Caught in a landslide, no escape from reality",
"syllables": [],
"endTimeMs": "0"
},
...
实际问题是如何在程序中获取所需的令牌?我已尝试使用此站点上的Get Token按钮请求令牌:https://developer.spotify.com/console/get-track/。但是该令牌似乎仅适用于官方API。对于歌词API,我始终会获得以下响应:
{
"error": {
"status": 403,
"message": "Client not allowed"
}
}
此外,上面链接中的承载令牌更短,且不包含破折号。
我知道我可以复制网页客户端在https://open.spotify.com 上使用的承载令牌,但该令牌总是在很短的时间内过期。
因此,我要么寻找手动获取永久令牌的方法,要么寻找以编程方式获取短期令牌的方法。
我不需要特定编程语言的解决方案。 任何语言都可以,或者提供一个抽象的解释。