ypshidifu 110eef3d3c Round 4: 修复ffmpeg空格式错误 + 添加防御性校验
- 添加 _normalize_format() 函数,规范化格式字符串,防止空/无效格式
- 修复 _parse_gt_output 空输出规格 bug(如 song.ncm> 会导致 ValueError)
- 在 _convert_audio 中添加 src_fmt/dst_fmt 空值保护,确保 never empty
- 在 convert_file 中添加 out_fmt 空值保护
- 在 _process_patterns 中添加 > 重定向空输出警告 + 回退到全局格式
- 将 -f 参数解析改为使用 _normalize_format(argv + 交互模式)
- 添加 VIPSONG_DEBUG 环境变量支持,输出 container/out_fmt/src_fmt/dst_fmt 诊断日志

根因:out_fmt 为空字符串时,_FORMAT_MAP.get 返回空字符串,
导致 audio.export(format="") -> ffmpeg -f '' -> "is not known" 错误。
2026-09-17 14:57:00 +08:00

vipsong - 酷狗/网易云音乐加密格式转码工具

CLI 工具,将酷狗加密格式 (.kgm/.kgma/.vpr) 和网易云加密格式 (.ncm) 解密转码为常见音频格式。

安装依赖

pip install -r requirements.txt

确保系统已安装 FFmpeg(用于格式转换)。

酷狗密钥

首次使用前,需获取酷狗密钥文件 kugou_key.xz:

curl -o kugou_key.xz https://raw.githubusercontent.com/HRuiCcc/music-geshizhuanhuan/master/assets/kugou_key.xz

使用方法

命令行模式

python vipsong.py .ncm python vipsong.py ./music/song.kgm python vipsong.py .ncm -f flac -d python vipsong.py song.ncm -d python vipsong.py ./downloads/.ncm ./music/.kgm

交互模式

python vipsong.py

vipsong> *.ncm # 转换当前目录全部 ncm 文件 vipsong> ./xx/xx/xx.kgm # 转换指定 kgm 文件 vipsong> song.ncm -d # 转码后删除原 ncm 文件 vipsong> /get # 查看转码统计 vipsong> /exit # 退出

命令说明

命令/参数 说明
*.ncm 转换当前目录全部 ncm 文件
./xx/xx/xx.kgm 转换指定路径的文件
-f <格式> 指定输出格式:mp3/flac/wav/ogg/m4a/original(默认 mp3)
-d 转码成功后删除原加密文件
/exit 退出交互模式
/get 显示转码统计(成功数、失败数、文件列表)

支持格式

输入格式 说明 输出格式
.ncm 网易云音乐加密格式 mp3/flac/wav/ogg/m4a
.kgm/.kgma/.vpr 酷狗音乐加密格式 (v3/v4) mp3/flac/wav/ogg/m4a

注意

  • 转换后保留原始 ID3 标签(歌名、艺术家、专辑、封面)
  • KGM 格式需要 kugou_key.xz 密钥文件(存放在项目根目录)
  • 仅支持 KGM v3/v4,v5 需要客户端密钥暂不支持
S
Description
No description provided
Readme
224 KiB
Languages
Python 76.3%
HTML 23.7%