三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

ncmdump 快速上手:3 关解锁网易云 NCM 文件转换

ncmdump 快速上手:3 关解锁网易云 NCM 文件转换

ncmdump 快速上手:3 关解锁网易云 NCM 文件转换

【免费下载链接】ncmdumpncmdump - 网易云音乐NCM转换项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump

上周我打算把网易云下载的几十首歌拷进车载 U 盘,插上却发现一首也放不出来——车机只认 MP3、FLAC 这些通用格式,而网易云给的是加密的 NCM 文件。那种"歌明明是我的,却处处被格式卡脖子"的感觉,想必你也体会过。好在朋友推荐了一个叫 ncmdump 的开源小工具,用一条命令就能完成 NCM 文件转换,半小时就把整个歌单搬进了车里。今天这篇文章,就带你把 ncmdump 真正用起来。

如果你也攒了一堆 NCM 文件不知道 ncmdump 怎么用,别急着搜教程,跟着下面的三关走一遍,从安装到批量转换一次打通。

第一关:把工具"搬"到你的电脑上

ncmdump 是基于 Java 的命令行工具,所以动手之前,先确认电脑里有 Java 8 或更高版本。在终端里敲一句:

java -version

能打印出版本号,说明环境没问题;提示"command not found",就去官网装一个 JDK 再回来。

接着获取源码并用 Maven 编译:

git clone https://gitcode.com/gh_mirrors/ncmdu/ncmdump cd ncmdump mvn clean package

过关提示:如果系统里没有 Maven,可以用包管理器安装(例如apt install maven),或者直接下载 Maven 解压后把bin目录加进 PATH。

编译成功后,在target目录下会生成ncmdump-2.0.jar,这个文件就是整个工具的核心,以后所有的转换都靠它。很多新手在这一关卡在"找不到 jar",记住:它在target文件夹里,而不是项目根目录。

第二关:人生第一次成功的 NCM 文件转换

拿到 jar 之后,找一个网易云下载的 NCM 文件,执行:

java -jar target/ncmdump-2.0.jar 你的音乐.ncm

终端里会依次打印解密过程:校验文件头(MAGIC)、读取密钥、AES 解密、重建密钥盒、解析元数据、读取专辑封面、解出音频数据、写入文件、修复标签。最后你会看到一句关键输出:

=> Output file path: /你的目录/歌手 - 歌名.flac

也就是说,ncmdump 会自动读取文件里的元数据,把输出文件命名为"歌手 - 歌名.格式",而且输出路径和原文件在同一目录,转换完直接就能用。

转换后多了什么

很多人以为 ncmdump 只是把壳拆掉,其实它还顺手做了一件贴心的事:修复音频标签。转换后的文件会保留歌曲标题、艺术家、专辑名,连专辑封面都会被写回去(对应源码里fixId3Tags那段逻辑)。你在网易云里看到的封面和歌手信息,转换后一个都不少,这在普通播放器里都能正常显示。

支持哪些格式

从源码看,ncmdump 会根据 NCM 文件内部记录的格式自动选择输出类型,目前支持三种:FLAC、MP3、MP4。所以不用担心"转出来格式不对"——它不会瞎猜,而是读文件里的format字段,原文件是什么就还原成什么,音质无损。

第三关:进阶玩法,让 ncmdump 帮你批量干活

单文件转换只是开胃菜,真正爽的是批量处理。ncmdump 的设计很贴心,可以一次性传入多个文件:

java -jar target/ncmdump-2.0.jar 歌1.ncm 歌2.ncm 歌3.ncm

也可以借助 shell 的通配符,把整个目录一锅端:

cd 你的音乐目录 java -jar /路径/target/ncmdump-2.0.jar *.ncm

最稳的批量姿势:写个小脚本

如果你和我一样有几百首歌要处理,建议写一个循环脚本,既能看到进度,又能汇总结果:

#!/bin/bash # 批量转换当前目录下所有 NCM 文件 for f in *.ncm; do echo "正在处理: $f" java -jar /路径/target/ncmdump-2.0.jar "$f" done echo "全部转换完成,去检查输出目录吧!"

过关提示:文件名带空格很常见,脚本里记得给变量加双引号("$f"),否则会被 shell 拆成两个参数。

转换失败?先查这四个地方

如果你在某一关被卡住了,多半是下面四种情况之一:

现象原因解决办法
No input .ncm File没传文件名命令最后加上 NCM 文件路径
File not found路径写错了用绝对路径,或先cd到文件所在目录
提示 Incorrect MAGIC文件不是标准 NCM 格式或已损坏重新在网易云客户端下载
输出文件一闪而过同目录已有同名文件工具会覆盖同名输出,属正常行为

另外提醒一句:ncmdump 是纯本地解密,所有处理都在你自己的电脑上完成,不会上传任何数据,隐私这块可以放心。

把这份能力变成习惯

现在你手上已经有一套完整的 NCM 文件转换流程了:装好 Java → 编译出 jar → 单文件转换 → 批量脚本收尾。下次从网易云下了新歌,顺手跑一下脚本,车机、手机、随身听都能直接播,不用再对着"格式不支持"干瞪眼。

如果你在某一关遇到了文章里没提到的情况,或者发现了更好用的批量玩法,欢迎去项目仓库的 Issues 里和作者、其他用户交流——开源工具的生命力,正是靠大家互相补位撑起来的。愿你的音乐收藏,从此真正属于你自己。

【免费下载链接】ncmdumpncmdump - 网易云音乐NCM转换项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表