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

使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:03:08