-
Notifications
You must be signed in to change notification settings - Fork 1
Home
ChouChiu edited this page Sep 23, 2026
·
5 revisions
Rust 歌词处理库,支持常见格式的解析、生成、解密与跨平台在线搜索。移植自 C# 项目 WXRIW/Lyricify-Lyrics-Helper。
| 领域 | 支持范围 |
|---|---|
| 格式解析 | LRC、QRC、KRC、YRC、TTML、Spotify JSON、Musixmatch JSON、Lyricify Syllable、Lyricify Lines。Apple Music JSON、QRC XML 与网易云 YRC JSON 为外层信封,需先取出歌词文本再解析。 |
| 格式生成 | LRC、QRC、KRC、YRC、Lyricify Syllable、Lyricify Lines。QRC/KRC/YRC 及 Lyricify Syllable 生成需要逐字音节数据,行级数据可降级导出为 LRC。 |
| 歌词解密 | QRC(Triple DES + zlib)、KRC(XOR + zlib,自动剥离 BOM)。 |
| 在线搜索 | 网易云音乐、QQ 音乐、酷狗音乐、汽水音乐、Musixmatch、LRCLIB、AMLL TTML DB;另支持 Apple Music 与 Spotify 的曲目搜索(需凭据)。 |
在 Cargo.toml 中添加依赖:
[dependencies]
lyrics-helper = "0.5.0"如需纯离线使用(不需要搜索与网络依赖):
[dependencies]
lyrics-helper = { version = "0.5.0", default-features = false }解析与转换示例:
use lyrics_helper::{generate_string, parse_auto, LyricsTypes};
fn main() {
let qrc = "[0,1500]Hello(0,500) (500,500)World(1000,500)";
let data = parse_auto(qrc).expect("解析失败");
// 逐字歌词降级生成逐行 LRC
let lrc = generate_string(&data, LyricsTypes::Lrc).expect("生成失败");
println!("{lrc}");
}入门
API 参考
- API 概览 — 顶层快捷入口与模块导出路径
-
解析 / 生成 / 解密 —
parse、generate_string、decrypt_*详解 -
数据结构 —
LyricsData、LineInfo、SyllableItem、TrackMetadata -
枚举类型 —
LyricsRawTypes、LyricsTypes、SyncTypes、LyricsAlignment
功能模块
- 搜索功能 — 各平台搜索与歌词抓取
-
搜索类型与高级函数 —
Searchertrait、SearchError与打分排序 - 歌词解密 — QRC 与 KRC 解密流程及错误处理
- 辅助工具 — 类型识别、时间偏移、繁简转换、书写约定提取、跨文档逐词计时与歌词优化
版本升级
- 从 0.4 升级到 0.5 — 音节行行时间、QRC/KRC 时长保留、查表分发
- 从 0.3 升级到 0.4 — 聚合缓存移除与 Send+Sync、KRC 解密修复
-
从 0.2 升级到 0.3 — 搜索层类型化错误、
SyllableItem相等语义移除 - 从 0.1 升级到 0.2 — 音节模型重构
项目与开发
- License: Apache-2.0
- Rust Edition: 2024 (需要 Rust 1.85+)
- Repository: GitHub
- Crates.io: lyrics-helper