mirror of
https://github.com/Suxiaoqinx/Netease_url.git
synced 2025-09-14 11:36:45 +08:00
465 lines
9.3 KiB
Markdown
465 lines
9.3 KiB
Markdown
# 网易云音乐工具箱 - 使用文档
|
||
|
||
## 📖 项目简介
|
||
|
||
网易云音乐工具箱是一个功能强大的网易云音乐解析工具,支持歌曲搜索、单曲解析、歌单解析、专辑解析和音乐下载等功能。项目提供了友好的Web界面和完整的API接口,支持多种音质选择,包括无损、Hi-Res等高品质音频格式。
|
||
|
||
## ✨ 功能特性
|
||
|
||
### 🎵 核心功能
|
||
- **歌曲搜索**:支持关键词搜索网易云音乐库中的歌曲
|
||
- **单曲解析**:解析单首歌曲的详细信息和下载链接
|
||
- **歌单解析**:批量解析歌单中的所有歌曲
|
||
- **专辑解析**:批量解析专辑中的所有歌曲
|
||
- **音乐下载**:支持多种音质的音乐文件下载
|
||
|
||
### 🎧 音质支持
|
||
- `standard`:标准音质 (128kbps)
|
||
- `exhigh`:极高音质 (320kbps)
|
||
- `lossless`:无损音质 (FLAC)
|
||
- `hires`:Hi-Res音质 (24bit/96kHz)
|
||
- `jyeffect`:高清环绕声
|
||
- `sky`:沉浸环绕声
|
||
- `jymaster`:超清母带
|
||
|
||
### 🌐 使用方式
|
||
- **Web界面**:直观的网页操作界面
|
||
- **API接口**:完整的RESTful API
|
||
- **批量处理**:支持歌单和专辑的批量解析
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 环境要求
|
||
- Python 3.7+
|
||
- 网易云音乐黑胶会员账号(用于获取高音质资源)
|
||
|
||
### 安装步骤
|
||
|
||
1. **克隆项目**
|
||
```bash
|
||
git clone https://github.com/Suxiaoqinx/Netease_url.git
|
||
cd Netease_url
|
||
```
|
||
|
||
2. **安装依赖**
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
3. **配置Cookie**
|
||
|
||
在 `cookie.txt` 文件中填入黑胶会员账号的Cookie:
|
||
```
|
||
MUSIC_U=你的MUSIC_U值;os=pc;appver=8.9.70;
|
||
```
|
||
|
||
> 💡 **获取Cookie方法**:
|
||
> 1. 登录网易云音乐网页版
|
||
> 2. 按F12打开开发者工具
|
||
> 3. 在Network标签页找到任意请求
|
||
> 4. 复制请求头中的Cookie值
|
||
|
||
4. **启动服务**
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
5. **访问界面**
|
||
|
||
打开浏览器访问:`http://localhost:5000`
|
||
|
||
## 🎯 使用指南
|
||
|
||
### Web界面使用
|
||
|
||
#### 1. 歌曲搜索
|
||
1. 选择「歌曲搜索」功能
|
||
2. 输入搜索关键词
|
||
3. 点击「搜索」按钮
|
||
4. 在搜索结果中点击「解析」或「下载」按钮
|
||
|
||
#### 2. 单曲解析
|
||
1. 选择「单曲解析」功能
|
||
2. 输入歌曲ID或网易云音乐链接
|
||
3. 选择音质等级
|
||
4. 点击「解析」按钮查看歌曲信息
|
||
5. 点击「下载」按钮下载音乐文件
|
||
|
||
#### 3. 歌单解析
|
||
1. 选择「歌单解析」功能
|
||
2. 输入歌单ID或歌单链接
|
||
3. 点击「解析歌单」按钮
|
||
4. 查看歌单信息和歌曲列表
|
||
5. 点击单首歌曲的「解析」或「下载」按钮
|
||
|
||
#### 4. 专辑解析
|
||
1. 选择「专辑解析」功能
|
||
2. 输入专辑ID或专辑链接
|
||
3. 点击「解析专辑」按钮
|
||
4. 查看专辑信息和歌曲列表
|
||
5. 点击单首歌曲的「解析」或「下载」按钮
|
||
|
||
#### 5. 音乐下载
|
||
1. 选择「音乐下载」功能
|
||
2. 输入音乐ID或链接
|
||
3. 选择下载音质
|
||
4. 点击「下载」按钮
|
||
5. 等待下载完成
|
||
|
||
### 链接格式支持
|
||
|
||
项目支持多种网易云音乐链接格式:
|
||
|
||
- **歌曲链接**:`https://music.163.com/song?id=123456`
|
||
- **歌单链接**:`https://music.163.com/playlist?id=123456`
|
||
- **专辑链接**:`https://music.163.com/album?id=123456`
|
||
- **直接ID**:`123456`
|
||
|
||
## 🔌 API接口文档
|
||
|
||
### 基础信息
|
||
- **服务地址**:`http://localhost:5000`
|
||
- **请求方式**:POST(部分接口支持GET)
|
||
- **响应格式**:JSON
|
||
|
||
### 接口列表
|
||
|
||
#### 1. 健康检查
|
||
```http
|
||
GET /health
|
||
```
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"status": 200,
|
||
"success": true,
|
||
"message": "服务运行正常",
|
||
"data": {
|
||
"service": "网易云音乐API",
|
||
"version": "1.0.0",
|
||
"uptime": "2小时3分钟"
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 2. 歌曲搜索
|
||
```http
|
||
POST /search
|
||
```
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"keyword": "搜索关键词",
|
||
"limit": 30
|
||
}
|
||
```
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"status": 200,
|
||
"success": true,
|
||
"message": "搜索完成",
|
||
"data": [
|
||
{
|
||
"id": "123456",
|
||
"name": "歌曲名称",
|
||
"artists": "艺术家",
|
||
"album": "专辑名称",
|
||
"picUrl": "封面图片URL"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
#### 3. 单曲解析
|
||
```http
|
||
POST /song
|
||
```
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"url": "歌曲ID或链接",
|
||
"level": "lossless",
|
||
"type": "json"
|
||
}
|
||
```
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"status": 200,
|
||
"success": true,
|
||
"message": "解析成功",
|
||
"data": {
|
||
"name": "歌曲名称",
|
||
"ar_name": "艺术家",
|
||
"al_name": "专辑名称",
|
||
"level": "lossless",
|
||
"size": "45.2MB",
|
||
"url": "下载链接",
|
||
"pic": "封面图片",
|
||
"lyric": "歌词内容"
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 4. 歌单解析
|
||
```http
|
||
POST /playlist
|
||
```
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"id": "歌单ID"
|
||
}
|
||
```
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"status": 200,
|
||
"success": true,
|
||
"message": "歌单解析成功",
|
||
"data": {
|
||
"playlist": {
|
||
"name": "歌单名称",
|
||
"creator": "创建者",
|
||
"description": "歌单描述",
|
||
"coverImgUrl": "封面图片",
|
||
"trackCount": 50,
|
||
"tracks": [
|
||
{
|
||
"id": "123456",
|
||
"name": "歌曲名称",
|
||
"artists": "艺术家",
|
||
"album": "专辑名称",
|
||
"picUrl": "封面图片"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 5. 专辑解析
|
||
```http
|
||
POST /album
|
||
```
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"id": "专辑ID"
|
||
}
|
||
```
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"status": 200,
|
||
"success": true,
|
||
"message": "专辑解析成功",
|
||
"data": {
|
||
"album": {
|
||
"name": "专辑名称",
|
||
"artist": "艺术家",
|
||
"description": "专辑描述",
|
||
"coverImgUrl": "封面图片",
|
||
"songs": [
|
||
{
|
||
"id": "123456",
|
||
"name": "歌曲名称",
|
||
"artists": "艺术家",
|
||
"album": "专辑名称",
|
||
"picUrl": "封面图片"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
#### 6. 音乐下载
|
||
```http
|
||
POST /download
|
||
```
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"id": "音乐ID",
|
||
"quality": "lossless"
|
||
}
|
||
```
|
||
|
||
**响应**:返回音频文件流,支持直接下载
|
||
|
||
## 🐳 Docker部署
|
||
|
||
### 使用Docker Compose
|
||
|
||
1. **修改配置**(可选)
|
||
|
||
编辑 `docker-compose.yml` 文件修改端口:
|
||
```yaml
|
||
ports:
|
||
- "8080:5000" # 将服务映射到8080端口
|
||
```
|
||
|
||
2. **启动服务**
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
3. **查看日志**
|
||
```bash
|
||
docker-compose logs -f
|
||
```
|
||
|
||
4. **停止服务**
|
||
```bash
|
||
docker-compose down
|
||
```
|
||
|
||
### 使用Dockerfile
|
||
|
||
```bash
|
||
# 构建镜像
|
||
docker build -t netease-music-api .
|
||
|
||
# 运行容器
|
||
docker run -d -p 5000:5000 -v $(pwd)/downloads:/app/downloads netease-music-api
|
||
```
|
||
|
||
## ⚙️ 配置说明
|
||
|
||
### 环境变量
|
||
|
||
可以通过 `.env` 文件或环境变量配置服务:
|
||
|
||
```bash
|
||
# 服务配置
|
||
HOST=0.0.0.0
|
||
PORT=5000
|
||
DEBUG=false
|
||
|
||
# 下载配置
|
||
DOWNLOADS_DIR=downloads
|
||
MAX_FILE_SIZE=524288000 # 500MB
|
||
|
||
# 日志配置
|
||
LOG_LEVEL=INFO
|
||
```
|
||
|
||
### Cookie配置
|
||
|
||
在 `cookie.txt` 文件中配置网易云音乐Cookie:
|
||
|
||
```
|
||
MUSIC_U=你的MUSIC_U值;os=pc;appver=8.9.70;
|
||
```
|
||
|
||
> ⚠️ **重要提示**:
|
||
> - 必须使用黑胶会员账号的Cookie
|
||
> - Cookie格式必须严格按照示例填写
|
||
> - 定期更新Cookie以保持有效性
|
||
|
||
## 🔧 故障排除
|
||
|
||
### 常见问题
|
||
|
||
#### 1. Cookie无效
|
||
**问题**:提示Cookie无效或过期
|
||
|
||
**解决方案**:
|
||
- 确认使用的是黑胶会员账号
|
||
- 重新获取Cookie并更新 `cookie.txt`
|
||
- 检查Cookie格式是否正确
|
||
|
||
#### 2. 无法下载高音质
|
||
**问题**:只能下载标准音质
|
||
|
||
**解决方案**:
|
||
- 确认账号是黑胶会员
|
||
- 检查Cookie是否有效
|
||
- 确认歌曲本身支持高音质
|
||
|
||
#### 3. 服务启动失败
|
||
**问题**:运行 `python main.py` 报错
|
||
|
||
**解决方案**:
|
||
- 检查Python版本(需要3.7+)
|
||
- 安装所有依赖:`pip install -r requirements.txt`
|
||
- 检查端口5000是否被占用
|
||
|
||
#### 4. 下载文件损坏
|
||
**问题**:下载的音频文件无法播放
|
||
|
||
**解决方案**:
|
||
- 检查网络连接是否稳定
|
||
- 重新下载文件
|
||
- 尝试其他音质选项
|
||
|
||
### 日志查看
|
||
|
||
服务运行时会生成日志文件 `music_api.log`,可以查看详细的错误信息:
|
||
|
||
```bash
|
||
tail -f music_api.log
|
||
```
|
||
|
||
## 📝 开发说明
|
||
|
||
### 项目结构
|
||
|
||
```
|
||
Netease_url/
|
||
├── main.py # 主程序入口
|
||
├── music_api.py # 音乐API核心模块
|
||
├── music_downloader.py # 音乐下载模块
|
||
├── cookie_manager.py # Cookie管理模块
|
||
├── qr_login.py # 二维码登录模块
|
||
├── templates/
|
||
│ └── index.html # Web界面模板
|
||
├── downloads/ # 下载文件目录
|
||
├── requirements.txt # Python依赖
|
||
├── Dockerfile # Docker构建文件
|
||
├── docker-compose.yml # Docker Compose配置
|
||
└── README.md # 项目说明
|
||
```
|
||
|
||
### 技术栈
|
||
|
||
- **后端**:Flask + Python
|
||
- **前端**:Bootstrap + jQuery
|
||
- **音频处理**:mutagen
|
||
- **HTTP客户端**:aiohttp + requests
|
||
- **容器化**:Docker
|
||
|
||
## 📄 许可证
|
||
|
||
本项目采用 MIT 许可证开源,但**禁止用于任何商业或付费项目**。
|
||
|
||
## 🤝 贡献指南
|
||
|
||
欢迎提交Issue和Pull Request!
|
||
|
||
1. Fork本项目
|
||
2. 创建特性分支:`git checkout -b feature/new-feature`
|
||
3. 提交更改:`git commit -am 'Add new feature'`
|
||
4. 推送分支:`git push origin feature/new-feature`
|
||
5. 提交Pull Request
|
||
|
||
## 📞 联系方式
|
||
|
||
- **GitHub Issues**:[提交问题](https://github.com/Suxiaoqinx/Netease_url/issues)
|
||
- **作者博客**:[https://www.toubiec.cn](https://www.toubiec.cn)
|
||
|
||
---
|
||
|
||
**⭐ 如果这个项目对你有帮助,请给个Star支持一下!** |