master
Musicfox Waybar Lyrics
在 Waybar 中显示 go-musicfox 当前播放歌曲的网易云逐行同步歌词。
行为
- 只匹配名称包含
musicfox的 MPRIS 播放器。 - musicfox 未运行、未播放或已经暂停时,模块自动隐藏。
- 播放时按 MPRIS 播放位置显示当前 LRC 歌词。
- 优先从 MPRIS URL/Track ID 提取网易云歌曲 ID,无法提取时按歌名、歌手和时长搜索。
- 歌词缓存在
~/.cache/musicfox-waybar-lyrics/,断网后已缓存歌曲仍可显示。 - 找不到同步歌词时显示当前歌曲名。
要求
- Python 3.11+
- Waybar
- playerctl
- 启用了 MPRIS 的 go-musicfox
先启动 musicfox 并播放歌曲,然后确认:
playerctl --list-all
playerctl --player=musicfox metadata
如果实际播放器名称不是 musicfox,可以运行:
./musicfox_lyrics.py --player-pattern 实际名称
Waybar 配置
把 custom/musicfox-lyrics 加入 Waybar 的模块列表,例如放到中间:
"modules-center": [
"custom/musicfox-lyrics",
"custom/center-clock"
]
再把 waybar-module.jsonc 中的模块配置合并到 Waybar 顶层配置,把 waybar-style.css 追加到 Waybar 样式文件。
你的配置文件通常位于:
~/.config/waybar/config.jsonc
~/.config/waybar/style.css
重新加载 Waybar:
pkill -SIGUSR2 waybar
单独运行
./musicfox_lyrics.py
没有播放时会输出隐藏状态;播放后输出类似:
{"text":"怀着冷却了的心窝漂远方","tooltip":"海阔天空 — Beyond\n怀着冷却了的心窝漂远方","class":"playing"}
测试
python -m unittest discover -s tests -v
网易云接口是网页内部接口,不提供长期稳定性保证。脚本已经包含缓存、超时和失败降级处理。
Languages
Python
98%
CSS
2%