
AllMusic Lyrics
color_yr 制作的 AllMusic Client3 附加模组。自动从网易云音乐 / LRCLIB 获取同步歌词,并在歌曲播放时显示在屏幕上。
查看大图AllMusic Client3 的模组附加组件,作者:color_yr (https://github.com/Coloryr/AllMusic)。
自动从网易云音乐 / LRCLIB 获取同步歌词,并在播放歌曲时显示在屏幕上。
当前歌词获取具有以下日志链路:
常规路径(有歌曲 ID)
[AllMusic3]正在解析歌曲[123456] ← 被 ClientReceiveMessageEvents.GAME 捕获
↓ LyricsDisplay.onSongParsing()
↓ LyricsFetcher.fetchById(123456) → 直接获取 LRC 歌词
↓ 日志:"后台获取歌词 ID=123456"
↓ 日志:"歌词已缓存: 35 行 (等待播放)"
[AllMusic3]正在播放:歌名 | 歌手 ← 被 ClientReceiveMessageEvents.GAME 捕获
↓ LyricsDisplay.onNowPlaying()
↓ pendingLines 有缓存 → 直接使用
↓ 日志:"正在播放: 歌名 | 歌手"
↓ 日志:"歌词显示已激活: 歌名 | 歌手"
备用路径(无缓存,按歌名搜索)
如果"正在解析歌曲"消息从未出现,而是直接收到"正在播放":
[AllMusic3]正在播放:歌名 | 歌手
↓ LyricsDisplay.onNowPlaying()
↓ pendingLines == null → 回退至搜索
↓ 日志:"无缓存,用歌名搜索..."
↓ LyricsFetcher.fetch(message)
├─ 匹配 NOW_PLAYING 正则 → 提取 "歌名 | 歌手"
├─ 拆分:name="歌名", artist="歌手"
├─ neteaseSearch("歌名", "歌手") → 搜索 API
├─ neteaseSearch("歌名", "") → 仅歌名(备用)
└─ lrclib("歌名", "歌手") → LRCLIB(最终备用)
第三条路径(packDo 备用)
AllMusicCore.packDo(INFO, "歌名 | 歌手") ← Mixin TAIL 拦截
↓ LyricsDisplay.onNowPlaying(data)
↓ 同上搜索流程
关键正则表达式(LyricsFetcher)
| 正则表达式 | 匹配内容 | 动作 |
|---|---|---|
正在解析歌曲[::]?\s*(\d+) |
正在解析歌曲[123456] |
直接通过 ID 获取 |
music\.163\.com.*[/#]song\?id=(\d+) |
网易云 URL |
直接通过 ID 获取 |
正在播放[::]\s*(.+?)(?:\s+by:.*)?$ |
正在播放:歌曲名称 |
按名称搜索 |
| 搜索日志关键词: | 搜索歌词:, 网易云搜索, LRCLIB, ✘ 未找到歌词. |
目前,此模块不会生成英文日志文件。
正在加载版本记录…


正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。