Files
arch-config/resources/musicfox-waybar-lyrics

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

网易云接口是网页内部接口,不提供长期稳定性保证。脚本已经包含缓存、超时和失败降级处理。