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

Spotify API访问私有播放列表触发404异常,捕获无效求助

解决Spotipy访问私有播放列表触发404异常的思路

1. 确认异常捕获的代码逻辑

你说捕获SpotifyException和HTTPError无效,大概率是捕获范围没覆盖到playlist_tracks的调用,或者写法有误。正确的捕获方式要把API调用包裹在try-except块里,且优先捕获SpotifyException(Spotipy会把底层HTTPError包装成自身异常抛出):

from spotipy.exceptions import SpotifyException

try:
    # 替换成你的playlist_tracks调用代码
    tracks = session.playlist_tracks(playlist_id_or_link)
except SpotifyException as e:
    if e.http_status == 404:
        print("无法访问该播放列表:可能是私有列表权限不足、ID错误或列表已被删除")
    else:
        print(f"API请求出错:{e}")
except Exception as e:
    # 兜底捕获其他未预料的异常
    print(f"程序出错:{e}")

2. 检查私有播放列表的授权权限

访问私有播放列表必须在授权时添加对应scope:

  • playlist-read-private:读取自己的私有播放列表
  • playlist-read-collaborative:读取协作播放列表

如果创建Spotipy会话时没加这些scope,Spotify API可能返回404(权限错误有时会伪装成404)。修改授权代码:

import spotipy
from spotipy.oauth2 import SpotifyOAuth

# 包含所需权限的scope
scope = "playlist-read-private playlist-read-collaborative"
session = spotipy.Spotify(auth_manager=SpotifyOAuth(
    scope=scope,
    client_id="你的客户端ID",
    client_secret="你的客户端密钥",
    redirect_uri="你的回调地址"
))

3. 确认播放列表ID提取正确

playlist_tracks方法需要的是播放列表ID,而非完整的Spotify链接。直接传整个链接会导致Spotipy无法正确解析,触发404。可以用以下函数提取ID:

def extract_playlist_id(playlist_link):
    # 处理网页链接格式:https://open.spotify.com/playlist/xxxx?si=xxxx
    if "open.spotify.com/playlist/" in playlist_link:
        return playlist_link.split("/playlist/")[1].split("?")[0]
    # 处理URI格式:spotify:playlist:xxxx
    elif "spotify:playlist:" in playlist_link:
        return playlist_link.split(":")[-1]
    else:
        raise ValueError("请输入有效的Spotify播放列表链接或URI")

# 使用示例
playlist_link = "你粘贴的私有播放列表链接"
playlist_id = extract_playlist_id(playlist_link)
tracks = session.playlist_tracks(playlist_id)

4. 调试验证

  • 打印提取后的playlist_id,确认和播放列表实际ID一致(Spotify客户端右键播放列表→分享→复制链接,查看中间的ID部分)
  • 用curl或Postman直接调用GET /v1/playlists/{playlist_id}/tracks端点,使用程序中的token,查看返回的具体错误信息,精准定位问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:47:34