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

获取他人Spotify账号热门艺人遇INVALID_CLIENT错误的正确步骤

获取他人Spotify热门艺人列表的正确步骤(解决INVALID_CLIENT错误)

核心问题说明

你要获取非本人Spotify账号的热门艺人数据,当前代码使用的util.prompt_for_user_token配合指定USERNAME的方式不适用该场景,同时redirect URI的配置细节也可能存在疏漏。


正确操作步骤

1. 确认Redirect URI配置完全匹配

  • 代码中的REDIRECT_URI必须和Spotify开发者控制台里的配置完全一致,包括结尾的斜杠、端口号、大小写(比如你用的http://localhost:8888/callback/,控制台里要一字不差)
  • 在开发者控制台的应用设置中,将该URI添加到「Redirect URIs」列表,保存后等待5-10分钟让配置生效

2. 切换授权方式(关键:获取他人数据必须走用户主动授权流程)

util.prompt_for_user_token是旧版授权方式,且指定USERNAME仅适用于自己的账号(依赖本地缓存)。获取他人数据必须通过授权码流程,让目标用户主动登录授权你的应用:

替换原有代码为以下实现:

import spotipy
from spotipy.oauth2 import SpotifyOAuth

# 替换为你的应用信息
SPOTIFY_CLIENT_ID = "你的客户端ID"
SPOTIFY_SECRET = "你的客户端密钥"
SCOPE = "user-top-read"
REDIRECT_URI = "http://localhost:8888/callback/"

# 初始化授权对象
sp_oauth = SpotifyOAuth(
    client_id=SPOTIFY_CLIENT_ID,
    client_secret=SPOTIFY_SECRET,
    redirect_uri=REDIRECT_URI,
    scope=SCOPE
)

# 生成授权URL,发送给目标用户
auth_url = sp_oauth.get_authorize_url()
print("请让目标用户访问以下URL完成授权:", auth_url)

# 用户授权后会跳转到redirect URI,复制URL中的code参数
code = input("请输入授权后URL中的code参数:")

# 用code换取访问令牌
token_info = sp_oauth.get_access_token(code)
access_token = token_info["access_token"]

# 初始化Spotify客户端
sp = spotipy.Spotify(auth=access_token)

# 获取目标用户的热门艺人数据
top_artists = sp.current_user_top_artists(limit=50, time_range="medium_term")

# 输出结果
print("该用户过去6个月的热门艺人:")
for artist in top_artists["items"]:
    print(artist["name"])

3. 关键注意事项

  • 不能直接通过他人的USERNAME获取数据,必须由目标用户主动登录Spotify并授权你的应用访问其user-top-read权限
  • 确保你的Spotify应用设置为「Public」状态(开发者控制台可修改),否则只有你自己能完成授权
  • 若仍出现redirect URI错误,检查:
    • 控制台配置的URI与代码是否完全一致(斜杠、端口、大小写均不能错)
    • 清除浏览器缓存后重新授权,避免旧缓存干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:40:27