当我想从spotify播放列表中提取所有歌曲时,即使在get请求中使用了“offset”和“limit”参数,我也只能得到前100首歌曲,我没有使用spotipy这样的库,而且我使用的是Python 3.9。
有人能帮我解决我做错的地方吗?先谢了!
我使用一个函数来指定参数和get请求。
def find_songs(self):
self.params = {
"Content-type": "application/json",
"Authorization": "Bearer {}".format(self.spotify_token),
"offset": 50,
"limit": 50
}
query = "https://api.spotify.com/v1/playlists/{}/tracks/".format(<playlist_URI>)
response = requests.get(query, params=self.params)
jsonResponse = response.json()
jsonResponseItems = jsonResponse['tracks']['items']
然后提取播放列表中的数字总数,然后扩展responseItems,因为它被限制为100首歌曲。
while len(jsonResponseItems) < jsonResponse['tracks']["total"]:
# len(jsonResponseItems)) # this returns 100
response = requests.get(query, params=self.params)
query = "https://api.spotify.com/v1/playlists/{}/tracks?".format(<playlist_URI>)
newResponse = response.json() # create a new JSON response
jsonResponseItems.extend(newResponse['tracks']['items']) # extend JSON response items
我错过了什么?医生:https://developer.spotify.com/documentation/web-api/reference/#/operations/get-playlists-tracks
1条答案
按热度按时间brgchamk1#
此代码将地址获得超过100首歌曲.
如前所述,
Tranvi
的主要思想是while循环保持请求平铺下一个URL为None。如果调用获取播放列表API后还有更多歌曲,这是下一个归档的格式。偏移量由数据响应自动归档。
结果-获得超过700首歌曲
它匹配Spotify用户界面。