EDIT : Let's try to clarify all this.
我正在写一个python脚本,我想让它告诉我Spotify目前正在播放的歌曲 .
我试过寻找可以帮助我的图书馆,但没有找到任何仍然维护和工作的图书馆 . 我还查看了Spotify的Web API,但它没有提供任何获取该信息的方法 .
我找到的唯一可能的解决方案是获取我的Spotify(桌面应用程序)窗口的 Headers . 但到目前为止我还没有成功 .
所以基本上,我问的是,是否有人知道:
- 如何应用我已经尝试使用的方法(从程序中获取窗口的 Headers ),可以是纯python或使用中间shell脚本 .
要么
- 从Spotify的桌面应用程序或Web客户端提取该信息的任何其他方式 .
Original post :
我正在摆弄一个Linux环境的python状态栏的想法,没什么特别的,只是根据我自己的用法量身定制的脚本 . 我现在要做的是从spotify(即艺术家和 Headers )显示当前播放的曲目 .
在他们的官方Web API中似乎没有类似的东西 . 我还没有找到任何可以做到这一点的第三方库 . 我找到的大多数库都被弃用了,因为spotify发布了他们当前的API,或者他们是基于所谓的API,它没有做我想要的 .
我也在这里读了一堆类似的问题,其中大部分都没有答案,或者是一个不赞成使用的解决方案 .
我想 grab 窗口 Headers ,因为它确实显示了我需要的信息 . 但这不仅令人费解,我也难以实现这一点 . 我试图通过在我的脚本中运行linux命令xdotools和xprop的组合来获得它 .
值得一提的是,由于我已经将psutil lib用于其他信息,因此我已经可以访问spotify的PID .
知道我怎么能这样做吗?
如果我的方法是你能想到的唯一的方法,任何想法如何实际使它工作?
我们将不胜感激 .
2 回答
Linux上的Spotify客户端实现了一个名为MPRIS的D-Bus接口 - 媒体播放器远程接口规范 .
http://specifications.freedesktop.org/mpris-spec/latest/index.html
您可以从python访问 Headers (和其他元数据),如下所示:
对于Windows:
该库可以在github找到:https://github.com/XanderMJ/spotilib . 请记住,这仍在进行中 .
只需复制该文件并将其放在Python / Lib目录中即可 .
spotilib.artist()只返回第一个艺术家 . 我开始研究其他库spotimeta.py来解决这个问题 . 但是,这还没有达到100% .
如果发生错误,则spotimeta.artists()将仅返回第一个艺术家(通过spotilib.artist()找到)