Kustom调用本地lrc歌词

备忘录

本文最后更新于 <span id="expire-date"></span> 天前,文中部分描述可能已经过时。

俺太菜了 😩

具体步骤

  1. 下载 .lrc 文件存放至指定路径,例如 /sdcard/Music/ ,歌词文件基本是 “歌手 - 歌曲名.lrc” 这样的命名方式,还有少数 “歌曲名.lrc”。
  2. 用 KWGT 获取当前正在播放的歌曲对应歌词路径。
    新建几个全局变量:
  • path
    file:///storage/emulated/0/Music/$mi(artist)$ - $mi(title)$.lrc
  • path1
    file:///storage/emulated/0/Music/$mi(title)$.lrc

但是还有歌手合唱的歌曲,像 “王菲/邓丽君 - 清平调.lrc” 这样的还好,碰到 “王菲/那英 - 岁月.lrc“ 这样命名的,斜杠头疼,还有用逗号的……

  1. 用 wg 获取歌词原始内容。
    新建全局变量 lrc

    $if(gv(path)!="",wg(gv(path),raw),wg(gv(path1),raw))$
  2. 用 tc(reg 正则表达式处理歌词,去掉 [00:00.01] 这类多余的词轨时间。
    新建全局变量 lyric

    $tc(reg, gv(lrc), "\[\d{2}:\d{2}\.\d{2}\]", "")$

    这样得到的歌词是一行一行的,还有多余的空行,很占空间。
    Screenshot_20201201-181856_Nova_启动器

    用下面的方式处理,得到的歌词又挤在一起,阅读难度大。

    $tc(reg, gv(lrc), "s*\n*\[.*?\]\s*/", "")$

    Screenshot_20201201-181958_Nova_启动器

  3. 新建文本,引用全局变量 lyric 即可展示。


TBD

头疼 😕

参考

正则表达式在线测试
怎么用正则表达式提取歌词LRC中的歌词

评论

您所在的地区可能无法访问 Disqus 评论系统,请切换网络环境再尝试。