An open API service indexing awesome lists of open source software.

https://github.com/will-17173/tauri-ncm2mp3

一款将 ncm 音频转换为 mp3 音频的桌面应用
https://github.com/will-17173/tauri-ncm2mp3

mp3 ncm ncm2mp3

Last synced: 3 months ago
JSON representation

一款将 ncm 音频转换为 mp3 音频的桌面应用

Awesome Lists containing this project

README

          

# NCM to MP3 转换器

一个基于 Tauri + Vue 3 构建的网易云音乐 NCM 格式转 MP3 格式的桌面应用程序。

## ✨ 功能特点

### 🎵 音频转换
- **高质量转换**:完整实现网易云音乐 NCM 格式解密算法
- **保持原始质量**:转换后的 MP3 文件保持原始音质
- **支持批量处理**:可同时转换多个 NCM 文件

### 📁 智能文件处理
- **拖拽支持**:直接将文件或文件夹拖拽到应用窗口
- **文件选择**:通过按钮选择单个文件或整个文件夹
- **递归搜索**:自动遍历文件夹及子文件夹,找出所有 NCM 文件
- **智能过滤**:自动跳过非 NCM 文件,只处理有效文件

### 🎛️ 用户界面
- **现代化设计**:简洁直观的用户界面
- **实时进度**:显示转换进度条和当前处理文件
- **详细日志**:提供完整的转换过程日志记录
- **状态反馈**:成功/失败状态的清晰展示

### 🔧 技术特性
- **跨平台**:支持 Windows、macOS 和 Linux
- **高性能**:使用 Rust 后端,转换速度快
- **安全可靠**:本地处理,不上传任何文件

## 🚀 使用方法

### 方式一:拖拽操作
1. 打开应用程序
2. 将 NCM 文件或包含 NCM 文件的文件夹直接拖拽到应用窗口
3. 应用会自动开始转换过程

### 方式二:手动选择
1. 点击 **"选择文件"** 按钮选择单个或多个 NCM 文件
2. 或点击 **"选择文件夹"** 按钮选择包含 NCM 文件的文件夹
3. 应用会自动开始转换过程

### 转换结果
- 转换后的 MP3 文件保存在与原 NCM 文件相同的目录下
- 文件名保持不变,仅扩展名改为 .mp3
- 应用会显示详细的转换日志和结果

## 📋 系统要求

- **操作系统**:Windows 10+、macOS 10.15+、Linux (主流发行版)
- **内存**:建议 4GB 以上
- **存储空间**:转换时需要足够的磁盘空间存储输出文件

## 🛠️ 开发环境

### 技术栈
- **前端**:Vue 3 + Vite
- **后端**:Rust + Tauri 2.0
- **加密处理**:AES-128 ECB + RC4 流密码
- **界面库**:原生 CSS + 响应式设计

### 开发要求
- Node.js 18+
- Rust 1.70+
- pnpm (推荐) 或 npm

### 本地开发

```bash
# 安装依赖
pnpm install

# 开发模式运行
pnpm tauri dev

# 构建应用
pnpm tauri build
```

## 📖 项目结构

```
ncm2mp3/
├── src/ # Vue 前端代码
│ ├── App.vue # 主应用组件
│ └── main.js # 应用入口
├── src-tauri/ # Rust 后端代码
│ ├── src/
│ │ ├── lib.rs # NCM 解密核心逻辑
│ │ └── main.rs # 应用主入口
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 应用配置
└── README.md # 项目说明
```

## 🔐 安全说明

- **本地处理**:所有文件转换均在本地进行,不会上传到任何服务器
- **开源透明**:完整源代码公开,可自行审查安全性
- **无网络依赖**:转换过程不需要网络连接

## 📄 许可证

本项目仅供学习和个人使用。请尊重音乐版权,仅转换您拥有合法使用权的音乐文件。

## 🤝 贡献

欢迎提交 Issue 和 Pull Request 来改进这个项目。

## ⚠️ 免责声明

本工具仅用于技术研究和个人学习目的。用户需自行承担使用本工具的法律责任,开发者不对任何版权问题承担责任。

---

*基于 Tauri 2.0 和 Vue 3 构建 | Made with ❤️*