使用Spotipy调用start_playback报400错误:Non supported context uri
解决Spotipy调用start_playback返回“Non supported context uri”错误
问题原因
你调用sp.start_playback时参数传递错误:start_playback的第二个位置参数是context_uri(用于专辑、播放列表这类上下文资源),而你传入的是单个歌曲的URI,API会把它识别为无效的上下文URI,因此返回400错误。
修复代码
修改sp.start_playback的调用方式,通过uris关键字参数传入歌曲URI(需要用列表包裹):
def searchSong(said): devices = sp.devices() for device in devices['devices']: if device['is_active']: results = sp.search(q=said, type="track", limit=1, offset=0) track_id = results["tracks"]["items"][0]["uri"] print(track_id) # 用uris关键字参数传递单曲URI,device_id也显式指定关键字 sp.start_playback(device_id=device['id'], uris=[track_id])
额外验证点
- 确认你的Spotipy授权
scope包含user-modify-playback-state,没有这个权限无法控制播放。 - 确保活跃设备确实处于可播放状态(比如Spotify客户端已打开且未暂停在私人会话)。
内容的提问来源于stack exchange,提问作者Gamerpros
相关产品推荐
相关产品推荐

