qmc-decoder 3步构建指南:把QMC加密音乐批量转成MP3和FLAC
【免费下载链接】qmc-decoderFastest & best convert qmc 2 mp3 | flac tools项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder
你在QQ音乐下载了一首歌,复制到电脑媒体库后播放器提示"未知格式":文件后缀是 .qmc3,内容经过加密,只有QQ音乐客户端能识别。qmc-decoder 是一款轻量 C++ 命令行工具,把 QMC3、QMC0、QMCFLAC 文件一次性解密成标准 MP3 或 FLAC,适合手里有加密 QMC 曲库、想让音乐在任何设备播放的人。
🔧 先跑起来:从源码到可用程序
准备:拉取源码与依赖子模块
你要做的第一件事是把仓库克隆到本地。项目里跨平台文件系统库是一个 git submodule,必须单独更新,否则后面编译会直接失败:
git clone https://gitcode.com/gh_mirrors/qm/qmc-decoder cd qmc-decoder git submodule update --init不想自己编译的话,项目 Release 页提供预编译二进制,可以跳过本节。
构建:一条cmake命令编译
接下来创建构建目录并编译。Linux 与 macOS 的步骤完全相同:
mkdir build cd build cmake .. make两个平台的差异只有这些:
- macOS 若没装 CMake,先执行
brew install cmake - Windows 需先装好 MSVC,在 "x86/x64 Native Tools Command Prompt for VS 2019" 里把配置命令换成
cmake -G "NMake Makefiles" .. -DCMAKE_BUILD_TYPE=Release,最后用nmake代替make
首次运行:转换单个文件验证
编译完成后 build 目录里会出现可执行文件。传一个 QMC 文件路径给它,验证转换是否正常:
./build/qmc-decoder /path/to/song.qmc3命令跑完,同目录下会多出一个同名的 .mp3 或 .flac 文件,具体后缀取决于原始文件。
📋 能力清单:认哪些输入、输出成什么
- 输入覆盖三种主流加密格式:.qmc3、.qmc0、.qmcflac,代码里还识别 .qmcogg
- 结果写在原文件同目录,文件名不变,只把后缀换成 .mp3、.flac 或 .ogg
- 不带参数运行时,递归扫描当前目录,把所有匹配的 QMC 文件一次批量处理
- macOS 提供 decoder.command 双击脚本,Windows 可直接双击 decoder-win.exe,无需打开终端
- 单个 C++ 可执行程序,转换过程离线完成,不依赖网络和音频库
| 维度 | 说明 |
|---|---|
| 输入格式 | .qmc3 / .qmc0 / .qmcflac(另识别 .qmcogg) |
| 输出格式 | .mp3 / .flac / .ogg,与原文件同目录同名 |
| 运行方式 | 命令行单文件 / 无参递归批量 / 双击脚本 |
| 构建依赖 | CMake ≥ 2.9,C++11 或 C++17 编译器 |
| 许可证 | MIT |
背后怎么工作:三层分工
整个程序不大,按职责分三层。入口 src/decoder.cpp 负责解析参数:带路径就处理单个文件,不带参数就递归遍历当前目录;sub_process 函数完成"整文件读入内存、逐字节解密、写回输出"的流水线,并用正则把原后缀映射到目标后缀。真正的解密在 src/seed.hpp 的 seed 类:它在一张内置的 8×7 字节表上行走坐标,逐字节生成掩码序列,把加密数据与之异或即还原为原始音频。文件遍历部分优先使用 C++17 的 std::filesystem,编译器不支持时回退到项目内置的 ghc::filesystem。
🔄 一个真实工作流:整目录批量转换
- 把待处理的 QMC 文件放进一个目录,例如整个"已下载音乐"文件夹
- 把编译好的 qmc-decoder 可执行文件复制到该目录
- 终端进入该目录,直接运行
qmc-decoder(不带任何参数) - 程序逐个解密,每个原文件旁边写出对应的 .mp3 或 .flac,原文件保持不动
一句话概括:一个装满 QMC 文件的目录 → 无参运行qmc-decoder→ 同目录多出同名 MP3/FLAC 文件。
❓ 遇到问题先看这里
运行提示 "please check if you have the write permissions",没有输出文件?结果文件要写进原文件所在目录,该目录必须有写权限。检查目录权限,或以有写权限的用户运行。
放进目录运行后,某些文件没有出现对应输出?只有 .qmc3、.qmc0、.qmcflac、.qmcogg 这四种后缀会被处理,后缀写错或带多余字符的文件会被跳过。
Windows 下 cmake 配置失败,报找不到编译器?必须在 Visual Studio 附带的 "Native Tools Command Prompt" 里执行,普通 cmd 或 PowerShell 不会自动配置 MSVC 环境。
不习惯命令行,能完全不敲命令吗?可以。macOS 把 decoder.command 和 qmc-decoder 一起放进 QMC 文件目录,双击前者;Windows 把 decoder-win.exe 放进目录后直接双击即可。
转换后播放器里专辑名、歌手显示不全?解密只还原音频数据,不修改文件标签。README 建议用第三方工具 Tag Editor 补齐元数据。
建议先用少量文件验证一遍完整流程,确认播放器都能正常打开,再对整个曲库批量处理;转换前留一份备份更稳妥。另外提醒:请只对个人合法来源的音乐文件做格式转换,尊重创作者版权。
【免费下载链接】qmc-decoderFastest & best convert qmc 2 mp3 | flac tools项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考