NCM音频转换器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_9608010a/ncm2mp3。
技能介绍
问题:网易云音乐的加密音频无法直接播放
网易云音乐下载的 .ncm 文件是加密的,即使扩展名看起来像普通音频,实际上内容被 AES-128-ECB 和 RC4 双重加密保护。这意味着你无法用常规播放器打开,也无法在其他设备上使用。如果你需要把下载的音乐转换成 MP3、FLAC 等标准格式,就必须先解密并转换。
工作原理:纯 Python 解密与格式转换
该技能通过一个 Python 脚本实现解密和转换,核心基于 ncmdump 算法移植,使用 pycryptodome 库处理 AES-128-ECB 和 RC4 解密。脚本会在首次运行时自动检测并安装依赖,无需手动配置环境。
- 自动识别输出格式:脚本会分析原始
.ncm文件的编码,自动输出对应的.mp3、.flac、.ogg或.wav文件,扩展名与实际编码一致。 - 流式处理大文件:采用 1MB 块流式读写,避免一次性加载整个文件到内存,适合处理大型音乐库。
- 批量转换与进度显示:支持传入目录路径,批量处理时显示
[1/N]进度,转换结果默认保存在源文件同目录,也可通过-o参数指定输出位置。 - 保留原始文件:转换过程不会删除或修改原始
.ncm文件,确保数据安全。
适用边界与注意事项
- 格式由原始编码决定:输出格式取决于
.ncm文件原始编码,无法强制指定为 MP3。如果文件实际是 FLAC,脚本会输出.flac。 - 批量处理超时设置:处理大量文件时建议设置
timeout=300000(5分钟),避免因长时间运行导致中断。 - 依赖自动安装:仅依赖
pycryptodome,脚本会在首次运行时自动安装,但需要 Python 环境。 - 原始文件保留:转换后原
.ncm文件不会被删除,如需清理需手动操作。
使用场景
- 你从网易云下载了一批加密的 .ncm 文件,想转成 mp3 放到手机或播放器里离线听
- 你整理本地音乐库时,需要把整个目录下的 .ncm 批量解密并转为标准音频格式
- 你帮别人转换 ncm 文件时,对方给了目录路径,你要把其中所有文件解密后保存到指定文件夹
- 你手上有一份大体积 .ncm 音乐,担心内存不够,需要用流式处理安全转换成 wav
适合人员
- 个人音乐爱好者,想把网易云下载的加密音乐转成通用格式在任意设备播放
- 整理本地音乐库的普通用户,需要批量解密 ncm 文件并归档为 mp3 或 wav
- 帮同事或朋友处理 ncm 文件的技术爱好者,需要快速完成单文件或批量转换
- 需要在服务器或自动化流程中处理 ncm 文件的开发者,要求脚本支持目录批量处理和自定义输出路径