更新:2026-09-07。本文记录本机处理酷狗
.kgg加密音频的完整方法(解密 → 转 MP3 → 截取片段), 供后续会话直接复用。工具与依赖均已固化在本机,无需重新研究。
.kgg 是酷狗音乐(KuGou)的加密音频外壳格式(新版 V5),不是普通音频,直接播放/ffmpeg 无法读取。0x400(1024) 字节为头部,偏移 0x44 处是 idLength,0x48 起是 encryptionKeyId(32 位十六进制); 0x400 之后是 QMC2 流密码加密的音频本体(通常为 Vorbis/ogg)。KGMusicV3.db(SQLite,AES-128-CBC 逐页加密,每页 key/IV 由页号派生,master key 公开)。 每首歌/每个下载对应一对 EncryptionKeyId → EncryptionKey,key 是随下载生成的,换设备或重新下载都会变, 所以必须用"下载该 kgg 的那台酷狗"导出的 db。| 材料 | 说明 |
|---|---|
xxx.kgg | 待转换文件 |
KGMusicV3.db | 下载该 kgg 的酷狗设备的数据库(Windows 酷狗8 一般在 C:\Users\<用户>\AppData\Roaming\KuGou8\KGMusicV3.db) |
⚠️ 若 db 里查不到该文件的 key id(表现为
Missing KGG key for <id>),请从下载该文件的设备上重新导出 最新的KGMusicV3.db上传。没有对应 key 就无法解密。
/home/zyw/Downloads/kgg-work/tools/
├── kgg-decrypt.js # 一键解密脚本(见下)
├── decrypt_db_fixed.js # 仅解密 KGMusicV3.db(历史脚本)
├── decrypt_kgg.js # 仅解密 kgg(历史脚本,需手填 keys)
├── OpenConverter-main/ # OpenConverter 算法移植版(src/decoders/kgg/:header/ekey/qmc2/db-cipher)
├── kgmusic_decrypted.db # 最后一次解密的明文库(可查表)
依赖:node(内置模块,无 npm 依赖)、sqlite3 CLI、ffmpeg。
mkdir -p /tmp/kggout
node /home/zyw/Downloads/kgg-work/tools/kgg-decrypt.js \
"<kgg文件>" "<KGMusicV3.db>" /tmp/kggout
脚本自动:解密 db → 读 key 映射 → 按文件头 id 找 ekey → 解出音频 → 输出同名单 .ogg/.flac/.mp3(按内容嗅探)。
SRC=/tmp/kggout/大籽\ -\ 白月光与朱砂痣.ogg
OUT=/home/zyw/Downloads/dl-hub/用户上传/人工智能基础文件
# 全曲转 MP3
ffmpeg -y -i "$SRC" -c:a libmp3lame -b:a 192k "$OUT/大籽 - 白月光与朱砂痣.mp3"
# 截前 15 秒
ffmpeg -y -i "$SRC" -t 15 -c:a libmp3lame -b:a 192k "$OUT/大籽 - 白月光与朱砂痣_前15s.mp3"
# 任一时间段(如 31-61 秒):
# ffmpeg -y -i "$SRC" -ss 31 -to 61 -c:a libmp3lame -b:a 192k "$OUT/xxx_31-61s.mp3"
验证:ffprobe -v error -show_entries format=duration <mp3>;响度检查 ffmpeg -i x.mp3 -af volumedetect -f null -。
| 项目 | 值 |
|---|---|
| 源文件 | 下载中心/用户上传/人工智能基础文件/大籽 - 白月光与朱砂痣.kgg(2,357,675 B) |
| 解密用库 | 用户当天新上传的 人工智能基础文件/KGMusicV3.db(26,428,416 B,md5 0501052544d201e7ecf7619f1b887822),含 key id 86193e588024489b05e6f5e9a9772165 |
| 解密中间产物 | /tmp/kggwork/output/大籽 - 白月光与朱砂痣.ogg(Vorbis 44.1k 立体声,全长 204.2s,~96kbps) |
| 最终产出 | 见下方"下载地址" |
| 歌曲 | 产出 |
|---|---|
DJ铁柱Remix - 雨夜钢琴 (防城港进行曲DJ版).kgg | .ogg + _31-61s.mp3(在 下载中心/用户上传/) |
鱼仔(余莹) - 雨夜钢琴 (防城港开工鱼仔DJ原版).kgg | .ogg + _31-61s.mp3 + _前30s.mp3 |
Missing KGG key for <id> = 当前 db 没有这首的 ekey,需要下载该文件的设备导出的 db(新上传的库请放到 kgg 同目录,本机只认全盘最新文件)。用户上传/KGMusicV3.db,9-05 版)只有两首雨夜钢琴的 key,不含白月光;新库在 人工智能基础文件/ 下(9-07 14:34)。strings/file 看不到 SQLite 头;判定加密:首 16 字节不是 SQLite format 3\0。~/Downloads/kgg-work/tools。