【发布时间】:2020-07-16 23:58:50
【问题描述】:
描述错误
每当我尝试在 Spotify 设备上开始播放时,都会收到 403 错误。
我正在尝试使用第 197 行上的代码 client.start_playback(device_id=spotify_device_id, context_uri=tag_uri) 在我的 Google Home Mini 扬声器上播放(使用另一个名为 pychromecast 的库,但它正在工作)。
403 错误通常是当用户没有高级版时(我认为)。 虽然我有 Premium 并且已经仔细检查过。授权工作正常。
我的代码
预期行为
- 从 NFC 标签读取 Spotify 专辑 URI
- 开始在 Spotify 设备(我的 Google Home Mini)上播放该专辑
实际行为
- 从 NFC 标签读取 Spotify 专辑 URI
- 尝试在 Spotify 设备上开始播放
- 因 403 错误而失败
输出
环境:
- 操作系统:树莓派 3
- Python 版本 3.5.3
- spotipy 版本 2.13.0
附加上下文
我的代码在 Windows 10 上运行,然后在转移到我的 pi 后不再运行。 我认为它没有正确授权(它不是)所以我修复了它,但我仍然收到同样的错误。
我认为这个错误可能与我使用的范围有关,即:
_scope = 'streaming user-read-playback-state user-modify-playback-state'
请帮忙!
【问题讨论】:
-
顺便说一句:
streaming仅适用于 Web Playback SDK。否则他们似乎很好。当播放操作受到限制时,Spotify 会返回错误原因。你能检查一下回复是否有回复吗? Here 是原因的索引。 -
谢谢,菲利克斯!我会检查一下。我认为 spotipy 库没有返回原因,只是 403。我会尝试向该库提出请求,看看是否能得到原因。
-
您可能能够捕获错误并以这种方式获得原始响应,我认为 Spotipy 包装了请求。如果我没记错的话,试试
catch Exception as err并打印err.response.json()。抱歉,我没有时间检查所有内容。 -
我收到一个错误:
AttributeError: 'SpotifyException' object has no attribute 'response' -
我尝试打印
err.msg、err.http_status和err.code。err.msg什么都不打印,err.http_status打印 403,err.code打印 -1。
标签: python python-3.x spotify spotipy