歌词获取工具 HTTP API 文档
1. 基本信息
项目
说明
Base URL
https://c.cdgz.top
字符编码
UTF-8
服务认证
当前未设置 LyricGET API Key 或登录认证
跨域访问
已启用 CORS
压缩
请求包含 Accept-Encoding: gzip 且文本响应不小于 1 KiB 时可能返回 gzip
调用模式
同步请求;歌词接口会等待对应平台适配器执行完成
所有响应都可能包含以下性能诊断头:
Server-Timing: app;dur=12.34
歌词接口的外部平台访问时间受网络、地区限制及平台限流影响。客户端超时时间建议设置为至少 65 秒,与项目网页端保持一致。
2. 接口总览
方法
路径
说明
成功响应类型
POST
/get-lyrics
根据歌曲或专辑 URL 获取歌词
JSON
GET
/api/apple
获取 Apple Music 歌词文本文件
UTF-8 纯文本
GET
/api/platforms
获取当前支持的平台及适配器目录
JSON
POST
/convert_text
简繁转换及异体字标准化
JSON
3. 获取歌词
POST /get-lyrics
根据 URL 自动识别音乐平台,执行对应歌词适配器,并返回统一 JSON。
请求头
Content-Type: application/json
Accept: application/json
请求体
字段
类型
必填
说明
url
string
是
支持平台的歌曲或专辑 URL
token
string
条件必填
平台用户 token;Apple Music 必填,其他平台按需传入
Token 行为:
平台
要求
行为
Apple Music
必填
作为 media-user-token 使用;每次都重新请求 Apple API
Musixmatch
可选
提供 token 时改用 token 适配器
QQ 音乐
可选
token 包含 喵或 nya 时使用时间轴歌词适配器,否则使用普通歌词适配器
其他平台
通常不需要
未定义特殊逻辑的平台不会使用该字段
cURL 示例
普通平台:
curl --request POST "https://c.cdgz.top/get-lyrics" \
--header "Content-Type: application/json" \
--data '{"url":"https://genius.com/artist-song-lyrics"}'
网易云音乐单曲(桌面、移动端及短链均可):
curl --request POST "https://c.cdgz.top/get-lyrics" \
--header "Content-Type: application/json" \
--data '{"url":"https://music.163.com/song?id=3420884375"}'
网易云音乐专辑:
curl --request POST "https://c.cdgz.top/get-lyrics" \
--header "Content-Type: application/json" \
--data '{"url":"https://music.163.com/album?id=390229202"}'
Apple Music:
curl --request POST "https://c.cdgz.top/get-lyrics" \
--header "Content-Type: application/json" \
--data '{
"url":"https://music.apple.com/us/song/example/123456789",
"token":"YOUR_MEDIA_USER_TOKEN"
}'
JavaScript:
const response = await fetch("https://example.com/get-lyrics", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
url: "https://music.apple.com/us/song/example/123456789",
token: "YOUR_MEDIA_USER_TOKEN",
}),
});
const data = await response.json();
if (!response.ok) {
throw new Error(data.error || `HTTP ${response.status}`);
}
console.log(data.lyrics);
普通成功响应
状态码:200 OK
{
"lyrics": "[00:01.20]第一行歌词\n[00:05.40]第二行歌词",
"status": "success"
}
字段
类型
说明
lyrics
string
适配器返回的歌词文本,可能包含 LRC 时间轴、标题或平台特有分隔符
status
string
成功时为 success
script_warning
string
可选;适配器退出成功但向 stderr 输出的提示信息
status: success 表示适配器正常退出并形成响应;当第三方平台没有提供歌词时,lyrics 仍可能为空。
带歌曲元数据的成功响应
部分平台会额外返回歌曲信息:
{
"lyrics": "歌词正文",
"title": "歌曲名",
"artist": "歌手名",
"status": "success"
}
当前支持结构化 title、artist 的适配器包括 AWA、Uta-Net、J-Lyric、JOYSOUND、PetitLyrics、Utaten、Animesongz、TuneCore 和网易云音乐。
网易云音乐行为
支持 music.163.com 的单曲、专辑、移动端及 #/song、#/album 链接,也支持 163cn.tv 等网易云短链解析。
单曲请求调用本机网易云 API 的 /lyric/new?id=... 和 /song/detail?ids=...,分别取得歌词与歌曲名/艺人名。
专辑请求只调用一次 /album?id=... 取得曲序及歌曲名/艺人名,再并发调用各曲目的 /lyric/new?id=...;不会为专辑曲目调用 /song/detail。
返回的网易云歌词已移除 LRC 时间轴、作词/作曲等创作者信息;时间戳表示的空行仍保留为空白行。
本机网易云 API 基地址默认为 http://127.0.0.1:3000。部署时可用 LYRICGET_NETEASE_API_BASE_URL 覆盖。
专辑/多曲目响应
当网易云专辑或 LinkCore/TuneCore 链接解析出多首歌曲时,返回:
{
"status": "success",
"album_links": [
"https://music.163.com/song?id=3420884375"
],
"all_lyrics": [
{
"url": "https://music.163.com/song?id=3420884375",
"lyrics": "歌词正文",
"title": "歌曲名",
"artist": "歌手名"
}
]
}
单曲处理失败时,对应数组元素可能改为:
{
"url": "https://music.163.com/song?id=3420884375",
"title": "歌曲名",
"artist": "歌手名",
"error": "未找到歌词"
}
缓存响应头
X-LyricGET-Cache: HIT
或:
X-LyricGET-Cache: MISS
非 Apple 平台只缓存包含歌词的成功结果。
默认缓存时间为 5 分钟,缓存键由 URL 和 token 的 SHA-256 哈希构成。
错误、超时和空歌词不缓存。
Apple Music 完全绕过歌词结果缓存,始终返回 MISS。
Apple Music 响应同时包含:
Cache-Control: no-store, private, max-age=0
Pragma: no-cache
Expires: 0
错误响应
基础错误结构:
{
"error": "错误说明"
}
适配器执行失败时可能包含诊断字段:
{
"error": "请求被暂时拦截,请稍后再试",
"script_error": "上游错误信息",
"return_code": 1
}
HTTP 状态码
场景
400
请求体为空、URL 为空、token 类型错误、URL 不属于支持平台、Apple token 缺失
403
UtaTime/Uta-Net 类适配器被上游拦截,并可能在响应中提供人工获取说明
404
对应适配器文件不存在
429
目标站点已被服务端临时标记为不可用
500
适配器非零退出、第三方平台请求失败、权限错误或服务内部异常
504
适配器执行超过服务端截止时间
通用内部异常可能返回:
{
"error": "处理请求时出错",
"details": "异常详情",
"type": "ExceptionType"
}
4. Apple Music 文本下载
GET /api/apple
专用于返回可下载的 Apple Music UTF-8 歌词文本。该接口与 /get-lyrics 使用相同的 Apple 适配器,但成功响应不是 JSON。
Query 参数
参数
类型
必填
说明
url
string
是
Apple Music 歌曲或专辑 URL
token
string
是
用户的 Apple Music media-user-token
参数必须进行 URL 编码。
cURL 示例
curl --get "https://c.cdgz.top/api/apple" \
--data-urlencode "url=https://music.apple.com/us/song/example/123456789" \
--data-urlencode "token=YOUR_MEDIA_USER_TOKEN" \
--output lyrics.txt
成功响应
状态码:200 OK
Content-Type: text/plain; charset=utf-8
Content-Disposition: attachment; filename="example.txt"
X-LyricGET-Cache: MISS
Cache-Control: no-store, private, max-age=0
Pragma: no-cache
Expires: 0
响应体为歌词纯文本:
歌曲标题
[00:01.20]第一行歌词
[00:05.40]第二行歌词
文件名取自 Apple Music URL 中的歌曲或专辑 slug,并清理不安全字符;无法提取时使用 apple_music_lyrics.txt。
错误响应
错误仍以 JSON 返回:
{
"error": "Token 无效/过期或链接错误"
}
HTTP 状态码
场景
400
URL/token 缺失,或 URL 不是 Apple Music 链接
401
Apple 适配器报告 403 Forbidden,通常与 token、链接或权限有关
404
内容不存在,或未在 token 对应区域上线
500
Apple 请求、解析或服务内部处理失败
504
Apple 适配器执行超过 38 秒
6. 歌词文字转换
POST /convert_text
执行简繁转换或 CJK 异体字标准化。
请求头
Content-Type: application/json
请求体
字段
类型
必填
说明
text
string
是
待转换文本;服务端会移除首尾空白
convert_type
string
是
转换类型,见下表
convert_type
作用
成功响应中的 conversion_type
to_simplified
繁体转简体
繁体转简体
to_traditional
简体转繁体
简体转繁体
normalize_variants
CJK 异体字标准化
异体字标准化
cURL 示例
curl --request POST "https://c.cdgz.top/convert_text" \
--header "Content-Type: application/json" \
--data '{"text":"漢字歌詞","convert_type":"to_simplified"}'
成功响应
状态码:200 OK
{
"success": true,
"converted_text": "汉字歌词",
"original_length": 4,
"converted_length": 4,
"conversion_type": "繁体转简体"
}
错误响应
{
"success": false,
"error": "文本内容为空"
}
HTTP 状态码
场景
400
JSON 请求体为空、文本为空或转换类型无效
500
转换器执行失败
7. 当前支持的平台
建议通过 /api/platforms 动态读取支持列表。当前代码包含以下域名:
域名
平台
awa.fm
AWA
uta-net.com
Uta-Net
animesongz.com
Animesongz
genius.com
GENIUS
j-lyric.net
J-Lyric.net
joysound.com
JOYSOUND
j-total.net
J-Total
kkbox.com
KKBOX
music.line.me
LINE MUSIC
utatime.com
UtaTime
lyrical-nonsense.com
UtaTime
musixmatch.com
Musixmatch
petitlyrics.com
PetitLyrics
rocklyric.jp
ROCK LYRIC
linkco.re
TuneCore Japan / LinkCore
utaten.com
Utaten
music.163.com、163cn.tv
网易云音乐
y.qq.com
QQ 音乐
lyricstranslate.com
LyricsTranslate
piapro.jp
piapro
joox.com
JOOX
music.apple.com
Apple Music
karent.jp
KARENT
qishui.douyin.com
汽水音乐