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

Spotipy artist(uid)等艺人相关函数无法工作问题求助

问题排查与解决方案

核心问题

用Spotipy调用artist(artist_id)、artist_albums(artist_id)、artist_top_tracks(artist_id)时要么失效要么代码卡住,就算用Spotify官方给的Pitbull艺人ID测试也没解决,但获取用户已保存曲目的功能完全正常。

可能原因及解决步骤

  • API权限没配全
    虽然获取艺人基础信息不需要特殊权限,但还是得确认下你的Spotify开发者应用授权范围有没有问题。重新生成授权链接,确保授权时至少包含user-library-read,可以额外加上user-top-read试试,有时候权限不全会导致接口静默失败。

  • Spotipy版本太旧
    旧版本的Spotipy可能和Spotify新API不兼容,直接升级到最新版:

    pip install --upgrade spotipy
    
  • 请求超时没处理
    代码卡住大概率是请求超时但没设置超时时间,给Spotipy客户端加个超时参数,超时就抛出异常,不会一直卡着:

    sp = spotipy.Spotify(auth_manager=SpotifyOAuth(...), requests_timeout=10, retries=3)
    
  • 触发API限流
    Spotify API有调用频率限制,连续刷艺人接口容易触发限流。可以在调用前加个短延迟:

    import time
    time.sleep(1)
    artist = sp.artist(artist_id)
    

    新版本Spotipy会自动处理重试,但手动加延迟更稳。

  • 艺人ID格式不对
    确认ID是完整的字符串,比如Pitbull的ID是3Mr4K520909P9qM5J405eL,别带空格或多余字符。直接用这个ID跑测试:

    test_id = "3Mr4K520909P9qM5J405eL"
    artist = sp.artist(test_id)
    print(artist)
    
  • 开调试日志看细节
    开启Spotipy的调试模式,能看到请求的URL、状态码这些,快速定位问题:

    sp = spotipy.Spotify(auth_manager=SpotifyOAuth(...))
    sp.trace = True  # 打开调试日志
    artist = sp.artist(artist_id)
    

最小测试脚本

写个独立的测试脚本,排除原有代码的干扰:

import spotipy
from spotipy.oauth2 import SpotifyOAuth

# 替换成你的开发者信息
CLIENT_ID = "你的客户端ID"
CLIENT_SECRET = "你的客户端密钥"
REDIRECT_URI = "http://localhost:8080/callback"

sp = spotipy.Spotify(auth_manager=SpotifyOAuth(
    client_id=CLIENT_ID,
    client_secret=CLIENT_SECRET,
    redirect_uri=REDIRECT_URI,
    scope="user-library-read"
))

# 测试Pitbull的艺人ID
test_artist_id = "3Mr4K520909P9qM5J405eL"
try:
    artist = sp.artist(test_artist_id)
    print(f"艺人名称:{artist['name']}")
    albums = sp.artist_albums(test_artist_id, limit=3)
    print(f"前3张专辑:{[album['name'] for album in albums['items']]}")
    top_tracks = sp.artist_top_tracks(test_artist_id, country="US")
    print(f"热门曲目:{[track['name'] for track in top_tracks['tracks']]}")
except Exception as e:
    print(f"错误信息:{str(e)}")

如果这个脚本能跑通,说明问题在你原有代码的其他部分;如果还是不行,那基本是环境或权限的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:41:10