Spotipy能否控制Spotify Connect音箱?RPi播放方案咨询
解答
Spotipy对Spotify Connect音箱的支持性
完全支持。Spotipy是官方Spotify Web API的Python封装,所有在当前登录Spotify账号下可见、处于活跃状态的Spotify Connect设备(含Raspotify搭建的软音箱、官方桌面/移动端客户端、第三方实体Connect音箱),都可以通过Spotipy的播放控制接口传入对应device_id实现操控,不存在接口层面的兼容限制。
你之前通过指定device_id控制电脑端播放,调用的就是这套通用控制接口,对Raspotify设备的操作逻辑和控制电脑端完全一致。
Raspotify设备无法被检索的常见排查方向
Spotipy无法检索到Raspotify设备的核心原因是设备本身未正常注册到当前Spotify账号的Connect设备列表,和Spotipy能力无关,可按以下顺序排查:
- 检查Raspotify服务运行状态:在Raspberry Pi终端执行
systemctl status raspotify查看服务运行日志,若服务未启动执行sudo systemctl start raspotify启动服务,需要开机自启则执行sudo systemctl enable raspotify - 检查局域网配置:Raspberry Pi、运行Spotipy脚本的设备、你日常使用的Spotify客户端设备必须处于同一局域网子网下,路由器不能开启AP隔离,不能屏蔽mDNS组播流量(Spotify Connect的设备发现逻辑依赖mDNS协议)
- 校验Raspotify账号配置:打开Raspotify配置文件
/etc/default/raspotify,确认配置项中填写的Spotify账号用户名、密码和你Spotipy调用时使用的账号一致,避免设备注册到其他账号下 - 手动激活设备:Raspotify启动后默认不会长期驻留在设备列表,先在手机/电脑的官方Spotify客户端的「连接到设备」列表中找到对应Raspberry Pi设备,手动点击连接一次,之后该设备就会在Web API的设备列表中保持可见,Spotipy即可正常拉取到对应的
device_id
替代实现方案
如果排查后Raspotify始终无法正常工作,可选择以下方案实现Raspberry Pi本地播放:
- 替换Connect客户端:使用
spotifyd替代Raspotify,这是轻量开源的Spotify Connect客户端,资源占用更低,跨网段设备发现的兼容性优于Raspotify,配置完成后同样可被Spotipy识别为可控Connect设备 - 本地客户端联动:在Raspberry Pi上安装命令行版Spotify客户端
ncspot,通过Spotipy拉取需要播放的歌单、曲目信息,调用系统指令控制ncspot完成本地播放,该方案无法复用Web API的全量播放控制能力,灵活性弱于Connect方案 - 直接拉流播放:通过Spotipy接口获取曲目的临时播放链接,调用Raspberry Pi本地安装的
mpv/vlc等播放器直接拉流播放,该方案需要自行处理DRM校验逻辑,稳定性较差,仅适合临时测试使用
内容的提问来源于stack exchange,提问作者superuser5000
相关产品推荐
相关产品推荐

