加密音乐文件为什么只在原App里能放?Unlock Music 浏览器解锁工具使用指南
【免费下载链接】unlock-music在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web项目地址: https://gitcode.com/gh_mirrors/un/unlock-music
Unlock Music 是一个跑在浏览器里的音乐文件解锁工具:把 QQ 音乐的.mflac/.mgg、网易云的.ncm、酷狗.kgm、酷我.kwm、虾米.xm等加密格式,变回标准的.flac/.mp3/.ogg,全程不需要把文件传到任何服务器。它适合的是已经下载过加密歌曲、想在手机、电脑、平板或车载设备上正常播放的普通用户,不涉及任何重编码。
先弄明白:被锁住的文件到底卡在哪
一首歌在播放器里变成乱码或直接打不开,通常不是因为音质差,而是音频数据本身被加了密。以 QQ 音乐为例,文件末尾会藏着一小段密钥信息,播放器用它来还原前面的音频部分。换一台设备、换一个播放器,拿不到那把"钥匙",自然就放不出来。
Unlock Music 做的事情很直接:读回文件里自带的密钥,把被加密的音频部分解开,得到一份普通的音频文件。它只做"去掉加密层"这一件事,不对音频重新压缩或转码,所以解出来的音质和原来完全一致。换句话说,它不是转换工具,而是还原工具。
它能认得哪些文件
不同平台各有各的加密后缀,Unlock Music 在 src/decrypt/ 里为每类文件单独写了解锁逻辑。按平台大致分这么几组:
- QQ 音乐:老格式
.qmc0/.qmc2/.qmc3/.qmcflac/.qmcogg/.tkm,iOS 的.tm0/.tm2/.tm3/.tm6,以及较新的.mflac/.mgg/.mflac0/.mgg1/.mggl/.mmp4 - 网易云音乐:
.ncm文件,以及.uc缓存 - 虾米音乐:
.xm - 酷我音乐:
.kwm - 酷狗音乐:
.kgm/.vpr - 喜马拉雅(Android):
.x2m/.x3m - 咪咕音乐:
.mg3d - QQ 音乐海外版(JOOX):
.ofl_en - Moo 音乐:
.bkcmp3/.bkcflac等.bkc系列
解出来对应什么格式取决于原文件:.mflac/.qmcflac还原成.flac,.mgg/.qmcogg还原成.ogg,.ncm还原成.mp3或.flac,以此类推。你不用手动指定,工具会自己判断。
三种拿到工具的方式
一、用别人打包好的版本。项目有自动构建,可以直接下载现成的版本,解压后就是一个能打开的网页。本地使用请选legacy版本;modern版本只能通过 http(s) 协议访问。注意不要直接打开源码目录里的index.html当作品用,要用构建后的产物。
二、自己从源码构建。需要 Node.js(v16.x)和 npm。克隆仓库后依次安装依赖并打包,命令如下,第一行是获取代码、中间装依赖、最后生成产物到dist目录:
git clone https://gitcode.com/gh_mirrors/un/unlock-music cd unlock-music npm ci npm run build开发阶段可以改用npm run serve起一个本地服务边改边看;想把它做成浏览器扩展,构建成功后再执行npm run make-extension。
三、处理大批量文件时用 CLI 版本。网页版适合偶尔解几首,文件多、想跑批处理时,项目作者建议改用它的命令行版本,效率更高。个别网页版解不了的后缀(比如.mflach)也只能走 CLI。
补充:QQ 音乐较新格式走的是 WebAssembly 加速路径,C++ 源码放在 src/QmcWasm/。要自己编译这部分 WASM,需要在 Linux 环境装好 python3,然后运行
./scripts/build-wasm.sh(脚本位于 scripts/)。
一次完整的解锁流程
- 打开工具页面,把加密文件直接拖进指定区域,一次可以丢很多个。
- 工具按后缀识别文件类型、调用对应的解密逻辑,自动处理。
- 得到可下载的普通音频文件,文件名沿用原来的,方便归档。
- 除了拿回音频,它还能帮你把歌曲名、歌手、专辑、风格等元信息,以及专辑封面写回或修正文件里,界面里可以直接编辑、换封面图。
因为支持批量拖入和后台多线程处理,几十个文件丢进去排队解就行,不用一首一首手动点。
遇到解不了的情况,先看这里
- 报"文件中没有写入密钥":说明这个文件末尾是
STag标记,密钥没写进去。常见于某些 App 版本下载的文件,按提示降级 App 后重新下载再试一次。 - 后缀是
.mflach:网页版解不了,换 CLI 版本。 - 解完格式不对或打不开:确认下文件是不是从正规渠道下载完整的,个别云盘下载的文件后缀是十六进制编码(如
666c6163),工具已经能识别,但仍建议核对文件完整性。 - 格式完全不认:工具目前只支持上面列出的那些后缀,遇到陌生后缀会直接提示"不支持此文件格式",不是 bug。
原理上它是怎么做的(一句话版)
对 QQ 音乐这类文件,工具先在 src/decrypt/qmc.ts 里用一张后缀对照表(HandlerMap)确定该用哪套算法,再到 src/decrypt/qmc_cipher.ts 里选具体的解密方式:较新的文件用 RC4、部分版本用映射表、最老的用一份固定的静态密钥表。整个过程在浏览器里跑,较重的计算交给 WASM 模块加速,这也是它解大文件能很快的原因。
写在最后
Unlock Music 的核心价值就一句话:把"只能在原 App 里听的加密文件"变回"到哪都能放的普通音频",并且全程在本地完成。项目遵循 MIT 协议开源,欢迎直接参与代码或到 Telegram 群组@unlock_music_chat交流使用问题。
【免费下载链接】unlock-music在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web项目地址: https://gitcode.com/gh_mirrors/un/unlock-music
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考