编辑:让我们尝试澄清这一切。
我正在编写一个 python 脚本,我希望它告诉我 Spotify 当前正在播放的歌曲。
我尝试寻找可以帮助我的库,但没有找到任何仍在维护和工作的库。
我还浏览了 Spotify 的 Web API,但它没有提供任何获取该信息的方法。
我发现的唯一可能的解决方案是获取我的 Spotify(桌面应用程序)窗口的标题。但到目前为止我还没有做到这一点。
所以基本上,我要问的是是否有人知道:
原帖:
我正在摆弄用于 Linux 环境的 python 状态栏的想法,没什么花哨的,只是一个根据我自己的使用情况定制的脚本。我现在想做的是显示来自 Spotify 的当前播放曲目(即艺术家和标题)。
他们的官方 Web API 中似乎没有类似的东西。我还没有找到任何第三方库可以做到这一点。我发现的大多数库要么自从 Spotify 发布了当前的 API 后就已被弃用,要么它们基于上述 API,但它不符合我的要求。
我还在这里阅读了很多类似的问题,其中大多数没有答案,或者是已弃用的解决方案。
我考虑获取窗口标题,因为它确实显示了我需要的信息。但这不仅看起来很复杂,而且我也很难实现这一点。我试图通过在脚本中运行 linux 命令 xdotools 和 xprop 的组合来获取它。
值得一提的是,由于我已经使用 psutil lib 来获取其他信息,因此我已经可以访问 Spotify 的 PID。
知道我该怎么做吗?
如果我的方法是您能想到的唯一方法,您知道如何使其真正发挥作用吗?
我们将不胜感激您的帮助。
Linux 上的 Spotify 客户端实现了称为 MPRIS(媒体播放器远程接口规范)的 D-Bus 接口。
http://specations.freedesktop.org/mpris-spec/latest/index.html http://specifications.freedesktop.org/mpris-spec/latest/index.html
您可以像这样从 python 访问标题(和其他元数据):
import dbus
session_bus = dbus.SessionBus()
spotify_bus = session_bus.get_object("org.mpris.MediaPlayer2.spotify",
"/org/mpris/MediaPlayer2")
spotify_properties = dbus.Interface(spotify_bus,
"org.freedesktop.DBus.Properties")
metadata = spotify_properties.Get("org.mpris.MediaPlayer2.Player", "Metadata")
# The property Metadata behaves like a python dict
for key, value in metadata.items():
print(key, value)
# To just print the title
print(metadata['xesam:title'])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)