我已经知道网址是https://spclient.wg.spotify.com/color-lyrics/v2/track/${TRACK_ID}?format=json&vocalRemoval=false
了
它需要两个标头。app-platform: WebPlayer
和authorization: Bearer TOKEN
.
所以,使用卷曲,我可以得到这样的歌词信息:
$ 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令牌按钮请求一个令牌:https://developer.spotify.com/console/get-track/
但是这个标记似乎只适用于官方API。对于歌词API,我总是得到以下对该标记的响应:
{
"error": {
"status": 403,
"message": "Client not allowed"
}
}
另外,来自上述链路的承载令牌要短得多,并且不包含破折号。
我知道我可以复制web客户端在https://open.spotify.com上使用的Bearer,但是令牌总是在很短的时间内过期。
因此,我要么寻找一种获得永久令牌的手动方式,要么寻找一种以编程方式获得短暂令牌的方法。
我并不是在寻找特定编程语言中的解决方案。任何一种语言都能做到,或者是一种抽象的解释。
https://stackoverflow.com/questions/73704499
复制相似问题