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

Spotipy使用异常:部分API方法正常调用,部分返回404错误

Spotipy使用异常:部分API方法正常调用,部分返回404错误

这种部分API能正常调用、另一部分却报404的情况确实挺让人挠头的,不过咱们可以一步步排查,先从几个常见的可能性入手:

1. 先排查Spotipy版本问题

旧版本的Spotipy偶尔会出现端点路径错误的bug,比如某些方法对应的API URL拼写有误。你可以先看看自己用的Spotipy版本:

pip show spotipy

如果版本低于2.20.0(或者更旧),强烈建议升级到最新版:

pip install --upgrade spotipy

升级后再试试调用sp.artist_related_artists(),很多时候这类问题都是版本兼容导致的。

2. 直接绕过Spotipy测试API端点

为了确认是Spotipy的问题还是Spotify API本身的问题,你可以用curl直接调用目标API端点:
首先,你需要获取一个有效的访问令牌(可以通过Spotify开发者控制台的"Get Token"按钮快速生成,或者用客户端凭证流获取),然后执行:

curl https://api.spotify.com/v1/artists/6olE6TJLqED3rqDCT0FyPh/related-artists -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

如果这个请求能正常返回相关艺人数据,那说明问题出在Spotipy的方法封装上,你可以直接用Spotipy的底层请求方法调用:

# 用Spotipy的底层_get方法直接调用API
response = sp._get('https://api.spotify.com/v1/artists/6olE6TJLqED3rqDCT0FyPh/related-artists')
print(response)

如果curl请求也返回404,那可能是临时的API区域限制——不过Nirvana是全球艺人,这种情况概率极低,你可以试试指定market参数(比如market="US")再调用。

3. 检查Spotipy的初始化方式

虽然你说认证没问题,但还是确认下你的Spotipy客户端初始化是否正确。如果是用客户端凭证流(适合访问公开数据),代码应该是这样的:

import spotipy
from spotipy.oauth2 import SpotifyClientCredentials

client_id = "你的客户端ID"
client_secret = "你的客户端密钥"
client_credentials_manager = SpotifyClientCredentials(client_id=client_id, client_secret=client_secret)
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)

如果是用授权码流(针对用户私有数据),artist_related_artists属于公开数据,客户端凭证流完全足够,用授权码流反而可能因为scope设置问题导致意外错误。

4. 确认艺人ID的有效性

虽然你说ID正确,但还是可以再验证下:调用sp.artist('spotify:artist:6olE6TJLqED3rqDCT0FyPh'),如果能返回Nirvana的艺人信息,说明ID确实没问题,排除ID错误的可能。

按照这个顺序排查下来,大概率能找到问题所在——我遇到过好几次类似的情况,都是旧版Spotipy的方法封装bug导致的,升级后就解决了。

备注:内容来源于stack exchange,提问作者Tomas Tsangoulas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 08:29:31