Spotipy的current_user_playlists()函数无法执行请求求助
排查思路
设置请求超时,捕获异常
给current_user_playlists()添加超时参数,强制终止卡住的请求并抛出异常,确认是否是请求超时导致的无响应:sp.current_user_playlists(timeout=10) # 设置10秒超时验证Access Token有效性
- 打印当前token的
expires_at字段,确认未过期; - 手动使用该token调用Spotify的
/me/playlists端点(用curl或Postman),检查是否能正常返回数据; - 确认token刷新时的
redirect_uri和授权时完全一致,避免刷新失败导致无效token。
- 打印当前token的
限制返回数据量,排除分页阻塞
如果用户播放列表数量过多,Spotipy的自动分页逻辑可能出现阻塞,尝试限制返回数量:sp.current_user_playlists(limit=10)若能正常返回,再逐步调整limit值,排查是否是大量数据处理导致的问题。
检查Spotipy版本兼容性
回退到之前能正常运行的Spotipy版本,排查是否是新版本引入的bug:pip install spotipy==<历史可用版本号>开启调试日志,对比请求细节
开启Spotipy的调试日志,查看请求的头信息、URL、参数,和直接调用API的请求做对比,确认是否存在请求构建错误:import logging logging.basicConfig(level=logging.DEBUG)修正Scope格式
你的Scope中使用了逗号分隔,而Spotify官方要求Scope用空格分隔,虽然之前正常,但可能权限验证逻辑有更新,尝试修正格式:SpotifyOAuth( client_id=client_id, client_secret=client_secret, redirect_uri=url_for('redirect_page', _external=True), scope='user-read-playback-state user-modify-playback-state user-read-currently-playing playlist-read-collaborative playlist-read-private user-library-read playlist-modify-private playlist-modify-public' )排查服务器网络环境
在服务器上用curl测试直接调用API端点,确认网络能正常访问Spotify服务:curl -H "Authorization: Bearer <你的Access Token>" https://api.spotify.com/v1/me/playlists排除防火墙、代理等网络因素导致的请求无法到达或响应被拦截。
内容的提问来源于stack exchange,提问作者Schupp
相关产品推荐
相关产品推荐

