Files
ncmdump/README.md
T

132 lines
4.7 KiB
Markdown
Raw Normal View History

2023-06-02 21:50:03 +01:00
# ncmdump
使用本程序可将下载的网易云音乐缓存文件(ncm)转换为 mp3 或 flac 格式
2021-10-06 17:33:57 +01:00
## 简介
2023-06-02 21:50:03 +01:00
2021-10-06 17:33:57 +01:00
该版本为最早的 C++ 版本,也是作者开发的市面上第一个支持 ncm 转换的程序
2024-11-27 19:25:03 +08:00
源码复刻自 anonymous5l/ncmdump (2021年10月6日,原作者已经删库)
2024-03-31 09:55:24 +08:00
2024-11-27 19:25:03 +08:00
感谢前辈的付出!此版本做了全操作系统下的的跨平台编译移植,修复了一些内存溢出的问题。
1.3.0 版本更新说明:因为之前有较多 Issue 反馈无法解密带有特殊字符的文件名,例如中文、日文、韩文或者是表情符号等,在1.3.0以及之后的版本彻底修复了这个问题,所有的 UTF-8 字符都可以正常解密。并且还自带了 dll 的构建,可以供其他应用程序(C#、Python、Java等)调用。
2021-10-06 17:33:57 +01:00
2024-01-06 00:30:18 +08:00
## 使用
2024-11-27 19:25:41 +08:00
注意:网易云音乐 3.0 之后的某些版本,下载的 ncm 文件会出现不内置歌曲专辑的封面图片的情况,所需的封面图数据需要从网络获取,介于在一个小工具中嵌入庞大网络库的非必要性,可以移步我的另一个仓库 [ncmdump-go](https://git.taurusxin.com/taurusxin/ncmdump-go) 或者使用基于此项目开发的可视化 GUI 程序 [ncmdump-gui](https://git.taurusxin.com/taurusxin/ncmdump-gui),其中后者基于前者,均完全使用 Golang 重写,并支持自动从元数据读取封面信息后从网络获取封面图并嵌入到目标音乐文件。
2024-09-23 20:10:20 +08:00
2024-04-06 12:29:08 +08:00
### 命令行工具
2024-11-27 19:25:03 +08:00
从 [Release](https://github.com/taurusxin/ncmdump/releases) 下载最新版本的对应系统的已编译好的二进制文件
2024-01-06 00:30:18 +08:00
使用 `-h` 或 `--help` 参数来打印帮助
```shell
ncmdump -h
```
2024-09-25 23:18:18 +08:00
使用 `-v` 或 `--version` 参数来打印版本信息
2024-01-06 00:30:18 +08:00
```shell
2024-09-25 23:18:18 +08:00
ncmdump -v
2024-01-06 00:30:18 +08:00
```
2024-09-25 23:18:18 +08:00
处理单个或多个文件
2024-01-06 00:30:18 +08:00
```shell
2024-09-25 23:18:18 +08:00
ncmdump 1.ncm 2.ncm...
```
2024-09-25 23:21:43 +08:00
使用 `-d` 参数来指定一个文件夹,对文件夹下的所有以 ncm 为扩展名的文件进行批量处理
2024-09-25 23:18:18 +08:00
```shell
ncmdump -d source_dir
```
2024-09-25 23:21:43 +08:00
使用 `-r` 配合 `-d` 参数来递归处理文件夹下的所有以 ncm 为扩展名的文件
2024-09-25 23:18:18 +08:00
```shell
ncmdump -d source_dir -r
```
2024-09-25 23:21:43 +08:00
使用 `-o` 参数来指定输出目录,将转换后的文件输出到指定目录,该参数支持与 `-r` 参数一起使用
2024-09-25 23:18:18 +08:00
```shell
# 处理单个或多个文件并输出到指定目录
ncmdump 1.ncm 2.ncm -o output_dir
# 处理文件夹下的所有以 ncm 为扩展名并输出到指定目录,不包含子文件夹
ncmdump -d source_dir -o output_dir
# 递归处理文件夹并输出到指定目录,并保留目录结构
ncmdump -d source_dir -o output_dir -r
2024-01-06 00:30:18 +08:00
```
2024-04-06 12:29:08 +08:00
### 动态库
或者,如果你想利用此项目进行二次开发,例如在你的 C#、Python、Java 等项目中调用,你可以使用 `libncmdump` 动态库,具体使用方法见仓库的 `example` 文件夹
请注意!如果你在 Windows 下开发,传递到库构造函数的文件名编码**必须为 UTF-8 编码**,否则会抛出运行时错误。
2024-02-07 22:51:06 +08:00
## 编译项目
2023-06-02 21:50:03 +01:00
2024-02-07 22:51:06 +08:00
克隆本仓库
2023-06-02 21:50:03 +01:00
2021-10-06 17:33:57 +01:00
```shell
2024-02-07 22:51:06 +08:00
git clone https://github.com/taurusxin/ncmdump.git
2021-10-06 17:33:57 +01:00
```
2024-02-07 22:51:06 +08:00
使用 CMake 配置项目。Windows 下若使用 GNU 套件,推荐使用 [msys2](https://www.msys2.org/) 或者 [winlibs](https://winlibs.com/)
2021-10-27 18:12:57 +01:00
2025-10-04 14:45:22 +08:00
注意:从 1.6 版本开始,CMake 构建不再依赖于 gitmodule,因此无需再克隆 `taglib` 仓库,改为使用系统的 taglib 库,针对不同系统上的构建,请参照如下方法
### Windows
2025-10-04 15:07:38 +08:00
首先需要安装 Visual Studio 2022 和 cmake,并安装 C++ 桌面开发环境,然后安装 [vcpkg](https://github.com/microsoft/vcpkg)
2021-10-27 18:12:57 +01:00
```shell
2025-10-04 15:07:38 +08:00
# 安装 vcpkg 并安装 taglib 的静态库
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.bat
2024-02-07 22:51:06 +08:00
2025-10-04 15:07:38 +08:00
./vcpkg install taglib:x64-windows-static
```
进入源码目录并配置项目
```shell
# 使用 cmake 配置项目,替换 %VCPKG_ROOT% 为你的 vcpkg 安装路径
cmake -G "Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -B build
2024-02-07 22:51:06 +08:00
# 编译项目
cmake --build build -j 8 --config Release
```
### macOS / Linux
macOS 下,你可以使用 Homebrew 来安装 taglib 库,Linux 下,你可以使用 apt / pacman 等包管理器来安装 taglib 库
```shell
# 安装 taglib 库
# macOS
brew install taglib
# Linux (Debian / Ubuntu)
sudo apt install libtag1-dev
# 配置项目
2024-02-07 22:51:06 +08:00
cmake -DCMAKE_BUILD_TYPE=Release -B build
2024-09-20 23:55:46 +08:00
# 编译项目
2024-02-16 22:06:58 +08:00
cmake --build build -j 8
2024-02-07 22:51:06 +08:00
```
2024-03-24 18:00:07 +08:00
---
2024-03-24 18:00:07 +08:00
你可以在 `build` 文件夹下找到编译好的二进制文件,以及一个可供其它项目使用的动态库(Windows Only),使用方法见仓库的 `example` 文件夹
2024-04-06 10:36:58 +08:00
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=taurusxin/ncmdump&type=Date)](https://star-history.com/#taurusxin/ncmdump&Date)