短视频 API 管理与播放系统,支持 API 导入、测试、管理,以及跨域代理和短视频轮播播放。
本项目全程依靠 AI 工具完成需求梳理、架构设计、代码开发、文档编写,特此诚挚致谢:
-
豆包
负责全套开发规范文档生成、分阶段流程设计、API 文档与 README 排版、开源文件模板提供。
官网:https://www.doubao.com -
Trae AI
负责播放器核心代码实现、交互逻辑、UI 渲染与工程化构建。
官网:https://trae.ai
- CSV 导入 API 数据
- API 测试与跨域检测
- 批量操作(测试、删除)
- 稳定性评分管理
- 数据持久化(SQLite)
- 白名单安全机制
- 支持 Cloudflare Worker 部署
- 跨域请求转发
- 重定向处理
- 短视频轮播播放
- 滑动/滚轮切换视频
- 视频源手动切换
- 自动播放下一个
- 失败自动重试(最多 3 次)
- 运行环境: Node.js 20+
- 语言: TypeScript (strict mode)
- 包管理: pnpm
- 后端框架: Express 5.x
- 数据库: SQLite (sql.js)
- 网络请求: axios
- 日志: winston + morgan
- 前端播放器: xgplayer
项目根目录
├── AGENTS.md # Trae 通用强制规则
├── CLAUDE.md # 核心业务架构与执行细则
├── PLANNING.md # 三期需求规划
├── SPEC.md # JSON 数据结构规范
├── README.md # 项目说明文档
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
├── api.csv # API 数据源文件
├── data/ # 数据库文件目录
│ └── api_data.db # SQLite 数据库
├── logs/ # 日志文件目录
│ ├── combined.log # 全级别日志
│ └── error.log # 错误日志
├── output/ # 导出文件目录
│ ├── all_api.json # 全量 API 数据
│ └── proxy_whitelist.json # 代理白名单
├── public/ # 前端静态资源
│ ├── index.html # 播放器页面
│ ├── index.js # 播放器逻辑
│ ├── api.js # 视频地址获取
│ ├── style.css # 样式文件
│ ├── player/ # 播放器组件
│ ├── all_api.json # API 数据配置
│ └── proxy.json # 代理配置
├── src/
│ ├── api-manager/ # API 管理模块
│ │ ├── server.ts # 服务端入口
│ │ ├── db.ts # 数据库操作
│ │ ├── request.ts # 请求处理
│ │ ├── classifier.ts # 视频源分类
│ │ ├── types.ts # 类型定义
│ │ ├── constants.ts # 常量配置
│ │ └── admin/ # Web 管理页面
│ │ ├── index.html # 列表页
│ │ └── tester.html # 测试/编辑页
│ └── proxy/ # 代理模块
│ ├── local-server.ts # 本地代理服务
│ ├── cf-worker.ts # Cloudflare Worker
│ ├── whitelist.ts # 白名单验证
│ └── logger.ts # 日志配置
├── .rules/ # 代码规范
│ ├── code-style.md
│ ├── frontend-rules.md
│ └── node-rules.md
└── memory/ # 项目决策记录
└── MEMORY.md
pnpm install# 启动 API 管理服务 (http://localhost:3001)
pnpm dev:api
# 启动代理服务 (http://localhost:3000)
pnpm dev:proxy
# 启动前端播放页面 (http://localhost:8080)
pnpm dev:web| 命令 | 说明 |
|---|---|
pnpm install |
安装依赖 |
pnpm typecheck |
TypeScript 类型检查 |
pnpm dev:api |
启动 API 管理服务 |
pnpm dev:proxy |
启动代理服务 |
pnpm dev:web |
启动前端服务 |
pnpm clean |
清理构建输出 |
功能:
- 导入 CSV 格式的 API 数据
- 测试 API 可用性与跨域支持
- 编辑、删除 API 记录
- 批量测试与删除
- 导出全量数据或白名单
代理地址:http://localhost:3000/proxy
功能:
- 验证请求是否在白名单内
- 转发跨域请求
- 返回原始响应头和内容
功能:
- 自动加载 API 数据
- 智能选择视频源(跨域优先)
- 上下滑动切换视频
- 手动切换视频源
- 失败自动重试
CSV 导入 → API 测试 → 生成 JSON → 代理白名单 → 前端播放
项目根目录
├── AGENTS.md # Trae通用强制规则(Codex兼容)
├── CLAUDE.md # Trae深度业务架构、流程、数据结构说明
├── PLANNING.md # 三期完整需求规划、迭代顺序、技术方案
├── SPEC.md # JSON结果文件数据规范、接口分类定义
├── .rules/
│ ├── code-style.md # TS/JS/前端代码规范
│ ├── node-rules.md # Node脚本、网络请求规范
│ ├── frontend-rules.md# 视频播放页面规范
│ └── file-output.md # 本地文件输出、缓存、下载目录规则
└── memory/MEMORY.md # 项目关键决策、踩坑记录、接口特征总结
MIT License