SpotiFLAC 歌词嵌入的完整玩法:从 LRC 自动下载到 FLAC 批量补救
【免费下载链接】SpotiFLACGet Spotify tracks in true FLAC from Tidal, Qobuz & Amazon Music — no account required.项目地址: https://gitcode.com/GitHub_Trending/sp/SpotiFLAC
SpotiFLAC 的歌词嵌入功能对接公共歌词库 LRCLIB:下载无损 FLAC 时自动抓取 LRC 同步歌词并写入文件,覆盖 FLAC、MP3、M4A 三种格式,存量曲目还能按专辑或歌单批量补救。
功能全景:歌词嵌入的四类使用场景
| 使用场景 | 具体表现 |
|---|---|
| 下载即嵌入 | 下载歌曲、专辑或歌单时,每首完成的同时从 LRCLIB 抓取 LRC 歌词写进文件元数据,播放器里即可逐句滚动 |
| 存量批量补救 | 已下载的曲目进入对应专辑/歌单页面,点"下载所有歌词",系统按顺序逐首处理 |
| 三种音频格式 | FLAC、MP3、M4A 各走一条独立的元数据写入路径,详见下文 |
| 单曲外置 .lrc | 单曲条目上提供独立下载入口,只导出 .lrc 歌词文件,不改动音频本体 |
五分钟上手:歌词批量嵌入四步配置 ⏱️
| 步骤 | 操作入口 | 预期结果 |
|---|---|---|
| 1 | 设置 → 元数据(Metadata)选项卡 | 打开 Embed Lyrics(嵌入歌词)开关 |
| 2 | 正常下载歌曲、专辑或歌单 | 每首下载完成时自动请求 LRCLIB 歌词并写入文件,无需任何额外操作 |
| 3 | 已下载曲库对应的专辑或歌单页面 | 点"下载所有歌词"批量补全存量曲目 |
| 4 | 单曲条目 | 点单独的下载歌词入口,仅导出一份外置 .lrc 文件 |
整个批量过程支持随时点停止,已完成的写入不会回滚,结束后会弹出"下载 X 首、跳过 X 首、失败 X 首"的统计。
工作原理:四级降级查找策略与元数据写入
查找逻辑位于 backend/lyrics.go,写入逻辑位于 backend/metadata.go。
查找:LRCLIB 四级降级策略
系统按下面顺序逐级放宽条件,直到命中为止:
- 用"歌手 + 歌名 + 专辑"三要素对 LRCLIB 发起精确查询;
- 未命中则丢掉专辑条件,只用歌手 + 歌名再精确查一次;
- 仍未命中,改用关键词搜索接口捞取候选列表;
- 最后把歌名里的"(feat. xxx)""(Remastered)"这类括号后缀剥掉,再查一遍。
每一级都优先取带时间戳的同步歌词(时间戳精确到句,播放器里能逐句滚动);四级全部落空,才退而取无时间戳的纯文本歌词——即使库里只有 plain lyrics,你也拿得到词,只是不能逐句滚动。
写入:三种格式的元数据路径
| 音频格式 | 元数据载体 | 说明 |
|---|---|---|
| FLAC | Vorbis 评论 | 歌词写入 Vorbis 评论的 LYRICS 字段(Vorbis 评论即 FLAC 的文本元数据区) |
| MP3 | ID3v2 USLT 帧 | 歌词存进 ID3v2 标签的 USLT 帧(ID3v2 是 MP3 的主流标签格式) |
| M4A | iTunes 元数据 | 通过 FFmpeg 完成写入 |
写入前还有一道时长校验:歌词时间戳会与音轨实际长度比对,明显对不上时会被修正或给出告警,避免播放器里歌词跑得比歌快。
外置歌词存放规则:.lrc 与音频同目录、同命名
.lrc 文件的文件名和存放目录,复用设置里配置的 filenameTemplate 与 folderTemplate(文件名模板默认{artist} - {title},目录模板默认{album_artist}/{album})。音频落在哪个目录、叫什么名字,歌词文件就落在同一目录、以同一基础名加 .lrc 后缀结尾,与音频天然一一对应,免二次整理。
导出后的 LRC 内容大致长这样:
[ti:歌曲名称] [ar:歌手名称] [00:01.00]第一句歌词 [00:05.50]第二句歌词另外,系统对同名已存在的歌词文件采取跳过策略,批量重跑不会覆盖你手动改过的版本。
常见问题:歌词嵌入 FAQ ❓
为什么整首歌都显示"未找到"?
多半是 LRCLIB 库里压根没有这首,冷门曲目、翻唱、未发行 demo 是重灾区。可以在浏览器里打开 LRCLIB 的公开站点手动搜歌名确认;库里没有的话,任何工具都无解。
拿到的只有纯文本,为什么没有滚动歌词?
这是歌词库收录质量的限制:系统已按优先级尽量拿同步版,拿不到就说明该曲在库里的收录只有 plain lyrics。
歌名带 (Live) / (Remaster) 这类后缀,会不会匹配失败?
降级策略会逐步剥掉括号后缀重试,剥完仍对不上库里条目时就会失败。这类歌可以走单曲入口单独下载,失败信息会更具体。
移动音频文件后,外置歌词找不到了?
依赖外置 .lrc 时,移动音频记得把歌词文件一起搬走。开了嵌入就没有这个问题——词写在文件里,怎么挪都不会散。
下载即带词、存量可补救,SpotiFLAC 的歌词嵌入让无损音质与逐句滚动歌词在同一步落地;实现细节可参考 backend/lyrics.go 与 backend/metadata.go。
【免费下载链接】SpotiFLACGet Spotify tracks in true FLAC from Tidal, Qobuz & Amazon Music — no account required.项目地址: https://gitcode.com/GitHub_Trending/sp/SpotiFLAC
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考