如何使用python从pianobar中检索当前歌曲名称和时间?

时间:2015-05-29 19:02:52

标签: python unix tkinter raspberry-pi pandora

我正在我的覆盆子pi上使用TKinter和python创建一个带有gui的闹钟。当闹钟响起时我想让它开始播放pianobar。我可以很容易地做到这一点,但我也想在GUI上显示歌曲的名称,我无法弄清楚如何播放当前正在播放的歌曲。我尝试使用管道“|”,并使用“>”重定向但我无处可去。任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:0)

您需要使用事件命令界面。从手册页:

  

可以在pianobar源代码分发的contrib /目录中找到示例脚本。

〜/的.config / Pianobar酒吧:

user = <username>
password = <password> (although I'd suggest password_command)
event_command = ~/.config/pianobar/event_command.py

〜/配置/ event_command.py

#!/usr/bin/env python

import os
import sys
from os.path import expanduser, join

path = os.environ.get('XDG_CONFIG_HOME')
if not path:
    path = expanduser("~/.config")
else:
    path = expanduser(path)
fn = join(path, 'pianobar', 'nowplaying')

info = sys.stdin.readlines()
cmd = sys.argv[1]

if cmd == 'songstart':
    with open(fn, 'w') as f:
        f.write("".join(info))

这将把歌曲信息写入〜/ .config / pianobar / nowplaying新歌曲开始时(手册页中还有其他可用事件)。然后,您可以使用您选择的工具对其进行解析,以获取歌曲标题。