使用Spotipy调用Spotify API获取音轨音频特征时遭遇403权限错误求助
Spotipy调用Spotify API获取音轨音频特征时遭遇403权限错误求助
嗨,刚上手Spotify API就碰到这种权限问题太正常了,我来给你捋捋怎么搞定这个403错误~
你遇到的这个问题确实是因为你的访问令牌(access token)权限不够!虽然拿音轨的基础数据(比如流行度、时长)不需要特殊权限,但调用audio_features()接口得让你的令牌带上对应的权限范围(scope)才行。
下面是具体的解决步骤,一步步来:
第一步:修正授权代码里的Scope设置
用Spotipy的SpotifyOAuth授权时,你得明确指定需要的权限。一般来说,加上user-read-private和user-top-read这两个scope就足够访问音频特征了(如果是拿公开音轨的话,user-read-private单一个也能行)。
给你个修正后的代码示例:import spotipy from spotipy.oauth2 import SpotifyOAuth # 替换成你自己的应用信息 CLIENT_ID = "你的客户端ID" CLIENT_SECRET = "你的客户端密钥" REDIRECT_URI = "你的重定向URI" # 明确指定需要的权限范围 sp = spotipy.Spotify(auth_manager=SpotifyOAuth( client_id=CLIENT_ID, client_secret=CLIENT_SECRET, redirect_uri=REDIRECT_URI, scope="user-read-private user-top-read" )) # 现在再尝试调用音频特征接口 track_ids = ["要查询的音轨ID"] audio_features = sp.audio_features(track_ids) print(audio_features)第二步:重置本地缓存,重新授权
修改完scope后,记得把本地生成的.cache缓存文件删掉——Spotipy默认会把旧的令牌存在这个文件里,不删的话会一直用没权限的旧令牌。删完后重新运行代码,跟着提示完成Spotify的授权流程,新生成的令牌就会带上你要的权限了。额外排查点
- 去Spotify开发者后台看看你的应用状态是不是正常的,有没有被限制或者封禁。
- 如果要查的是私人音轨(比如你自己收藏的、私人歌单里的),那可能还得加上
playlist-read-private或者user-library-read的scope才行。
对了,你收到的错误提示里“due to None”是因为Spotipy没返回更详细的权限不足说明,但核心问题肯定就是scope没加对啦。
备注:内容来源于stack exchange,提问作者fredny
相关产品推荐
相关产品推荐

