You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spotify API仅返回部分用户播放列表,求排查原因

问题原因及解决方案

核心问题是没有处理Spotify API的分页机制。你当前的代码只发起了单次请求,而Spotify API设置limit=50后每次最多返回50个播放列表。如果你的库中播放列表总数超过50,单次请求只能拿到其中一页内容,剩下的需要通过分页请求逐步获取。

具体解决步骤

Spotify API的返回结果包含两个关键字段:

  • total:用户库中播放列表的总数量
  • next:下一页结果的请求URL(若还有未返回内容,该字段不为null)

你需要循环发起请求,直到next为null,或者请求的offset超过total,才能获取全部播放列表。

修改后的代码示例(以/me/playlists接口为例)

def get_all_user_playlists(self):
    headers = {"Authorization": f"Bearer {self.access_token}"}
    all_playlists = []
    endpoint = "https://api.spotify.com/v1/me/playlists?limit=50"
    
    while endpoint:
        response = requests.get(endpoint, headers=headers).json()
        # 将当前页的播放列表合并到总列表
        all_playlists.extend(response.get("items", []))
        # 获取下一页的请求地址
        endpoint = response.get("next")
    
    return all_playlists

关键说明

  • 无需手动计算offset,直接使用返回结果中的next字段即可,它已自动包含正确的分页参数
  • 每次请求后将当前页的items合并到总列表,直到没有下一页内容为止
  • 即使你之前指定了offset,也需要循环处理才能拿到后续所有分页的内容

额外验证点

虽然你已确认权限正确,仍可再检查access_token对应的权限是否包含playlist-read-private和playlist-read-collaborative——这两个权限是获取私有、协作播放列表的必要条件(官网"try it"功能会自动申请全权限,因此能拿到全部内容)。

内容的提问来源于stack exchange,提问作者Matthew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:20:33