mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-clawer.git
synced 2026-03-21 18:13:42 +00:00
143 lines
3.3 KiB
Markdown
143 lines
3.3 KiB
Markdown
# api-clawer
|
||
|
||
简易网易云音乐客户端抓包工具, 适用于贡献 NeteaseCloudMusicApi 项目
|
||
|
||
## 功能
|
||
|
||
- 抓取并输出网易云音乐客户端的 HTTP 请求和响应数据
|
||
- 数据解密并以 JSON 格式输出
|
||
- 本地运行两个服务器:抓包服务器和前端显示服务器
|
||
- 前端界面实时显示抓包数据
|
||
|
||
## 安装
|
||
|
||
```bash
|
||
pnpm install
|
||
```
|
||
|
||
## 配置
|
||
|
||
1. 复制环境变量模板:
|
||
|
||
```bash
|
||
copy .env.example .env
|
||
```
|
||
|
||
2. 编辑 `.env` 文件,设置端口:
|
||
|
||
```
|
||
PORT=3000
|
||
HOOK_PORT=9000
|
||
```
|
||
|
||
## 证书生成
|
||
|
||
HTTPS 代理需要自签名证书。首次运行前需要生成证书:
|
||
|
||
```bash
|
||
cd src/server
|
||
node generate-cert.js
|
||
```
|
||
|
||
这将生成 `server.crt` 和 `server.key` 文件。
|
||
|
||
> **注意**:这是自签名证书,仅用于开发环境。使用时需要在客户端信任此证书。
|
||
|
||
## 运行
|
||
|
||
开发模式:
|
||
|
||
```bash
|
||
pnpm run dev
|
||
```
|
||
|
||
生产模式:
|
||
|
||
```bash
|
||
pnpm start
|
||
```
|
||
|
||
## 使用
|
||
|
||
1. **启动服务器**
|
||
|
||
运行 `pnpm run dev`,将启动两个服务:
|
||
- 前端服务器:`http://localhost:3000`
|
||
- 抓包代理服务器:`http://localhost:9000`
|
||
|
||
2. **配置网易云音乐客户端**
|
||
|
||
- 找到网易云音乐客户端的网络设置
|
||
- 将 HTTP 代理设置为:`http://localhost:9000`
|
||
- 保存设置并重启客户端
|
||
|
||
3. **查看抓包数据**
|
||
|
||
- 打开浏览器访问:`http://localhost:3000`
|
||
- 在网易云音乐客户端中进行操作(如搜索、播放音乐)
|
||
- 抓包数据将实时显示在前端界面
|
||
|
||
4. **信任证书**(首次使用 HTTPS 时)
|
||
|
||
- 如果客户端提示证书错误,需要手动信任 `src/server/server.crt` 证书文件
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
src/
|
||
├── server/ # 抓包服务器
|
||
│ ├── app.js # 服务器入口
|
||
│ ├── hook.js # 数据拦截和解密
|
||
│ ├── server.js # 代理服务器核心
|
||
│ ├── server.crt # HTTPS 证书(运行 generate-cert.js 生成)
|
||
│ └── server.key # HTTPS 私钥(运行 generate-cert.js 生成)
|
||
└── client/ # 前端服务器
|
||
├── app.js # 前端服务器
|
||
└── public/
|
||
└── index.html # 前端界面
|
||
```
|
||
|
||
## 故障排除
|
||
|
||
### 代理不工作
|
||
|
||
1. 检查证书文件是否存在:
|
||
```bash
|
||
dir src\server\server.crt src\server\server.key
|
||
```
|
||
如果不存在,运行 `node src/server/generate-cert.js`
|
||
|
||
2. 确认端口没有被占用:
|
||
```bash
|
||
netstat -ano | findstr :3000
|
||
netstat -ano | findstr :9000
|
||
```
|
||
|
||
3. 检查 `.env` 文件配置是否正确
|
||
|
||
### 前端页面无法访问
|
||
|
||
- 确认前端服务器已启动(查看控制台输出)
|
||
- 检查端口 3000 是否被占用
|
||
- 尝试清除浏览器缓存
|
||
|
||
### 无法抓取数据
|
||
|
||
- 确认网易云音乐客户端代理设置正确
|
||
- 尝试重启网易云音乐客户端
|
||
- 检查抓包服务器日志是否有错误信息
|
||
|
||
## 环境变量说明
|
||
|
||
| 变量名 | 默认值 | 说明 |
|
||
|--------|--------|------|
|
||
| PORT | 3000 | 前端服务器端口 |
|
||
| HOOK_PORT | 9000 | 抓包代理服务器端口 |
|
||
| NETEASE_COOKIE | - | 网易云音乐 Cookie(可选) |
|
||
| PROXY_URL | - | 上游代理 URL(可选) |
|
||
| FORCE_HOST | - | 强制指定网易云音乐服务器 IP(可选) |
|
||
| STRICT | false | 是否启用严格模式(可选) |
|
||
| CNRELAY | - | 中继服务器地址(可选) |
|
||
|
||
详细配置请参考 `.env.example` 文件。
|