Unlock Music 音乐解锁 (React)

在浏览器中解锁加密的音乐文件。 Unlock encrypted music file in the browser.
查看原基于 Vue 的 Unlock Music 项目
Unlock Music 项目是以学习和技术研究的初衷创建的,修改、再分发时请遵循授权协议。
Unlock Music 的 CLI 版本可以在 unlock-music/cli 找到,大批量转换建议使用 CLI 版本。
我们新建了 Telegram 群组 @unlock_music_chat ,欢迎加入!
CI 自动构建已经部署,可以在 Actions 寻找对应的构建产物Artifact 下载。
常见问题参考

Unlock Music 音乐解锁 (React)

支持的格式

QQ 音乐 QMCv1 (.qmc3 / .qmcflac 等)
QQ 音乐 QMCv2
PC 客户端 (.mflac / .mgg 等) 1
安卓客户端 (.mflac0 / .mgg1 / .mggl 等) 2
iOS 客户端 (.mgalaxy 等) 3
Mac 客户端 (.mflach 等) 4
网易云音乐 (.ncm)
虾米音乐 (.xm)
酷我音乐 (.kwm)
酷狗音乐 (.kgm / .vpr / .kgg)
PC / 安卓客户端的 kgg 文件需要提供密钥数据库。
喜马拉雅 (.x2m / .x3m / .xm)
咪咕音乐格式 (.mg3d)
蜻蜓 FM (.qta)

解密库开发

Unlock Music 音乐解锁 (React)

如果只是进行前端方面的更改,你可以跳过该节。
请参考文档「面向 @unlock-music/crypto 开发」。
架构
浏览器主线程: 渲染界面,处理 UI 更新
Web Worker: 负责计算方面的内容,如内容解密。
数据传输: 生成 blob url (URL.createObjectURL) 然后透过 postMessage 传递给线程,线程利用 fetch API 来获取文件信息。

贡献代码

欢迎贡献代码。请确保:

单元测试的覆盖率不低于主分支的覆盖率;
提交前请使用 Prettier 对代码进行格式化;
提交前请确保 ESLint 不会报告 warning / error;
满足上述条件后发起 Pull Request,仓库管理员审阅后将合并到主分支。

相关项目

Unlock Music (Web) - 原始项目
Unlock Music (Cli) - 命令行批量处理版
um-react (Electron 前端) - 使用 Electron 框架封装的本地可执行文件。
GitHub 下载 | 仓库镜像
um-react-wry - 使用 WRY 框架封装的 Win64 单文件 ( 需要安装 Edge WebView2 运行时,Win10+ 操作系统自带)
本地下载 | 寻找文件名为 um-react-win64- 开头的附件
有新的项目提交?欢迎提交 issue,请带上项目名称和链接。

PC 客户端仅支持 v19.43 或更低版本。 ↩︎

需要获取超级管理员权限后提取密钥数据库,并导入后使用。 ↩︎

要越狱获取密钥数据库,或对设备进行完整备份后提取密钥数据库,并导入后使用。 ↩︎

需要越狱获取密钥数据库,或对设备进行完整备份后提取密钥数据库,并导入后使用。 ↩︎

需要导入密钥数据库。 ↩︎