api-clawer/README.md
2026-03-13 20:52:09 +08:00

143 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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` 文件。