# TG Live Game Hono API Cloudflare Stream API 后端服务,基于 Hono + Cloudflare Workers。 ## 功能 - 视频管理(列表、详情、删除、导入) - 直播管理(创建、列表、详情、删除) - 播放地址生成 - 录像管理 ## 快速开始 ### 1. 安装依赖 ```bash npm install ``` ### 2. 配置环境变量 ```bash # 复制配置文件 cp .dev.vars.example .dev.vars # 编辑配置,填入 Cloudflare 凭证 vim .dev.vars ``` 需要配置: - `CF_ACCOUNT_ID` - Cloudflare Account ID - `CF_API_TOKEN` - Cloudflare API Token(需要 Stream:Edit 权限) - `CUSTOMER_SUBDOMAIN` - 播放域名子域名 ### 3. 本地开发 ```bash npm run dev ``` 服务将在 http://localhost:8787 启动。 ### 4. 部署到 Cloudflare Workers ```bash # 设置 secrets(首次部署前) npx wrangler secret put CF_ACCOUNT_ID npx wrangler secret put CF_API_TOKEN npx wrangler secret put CUSTOMER_SUBDOMAIN # 部署 npm run deploy ``` ## API 接口 ### 视频管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/stream/video/list` | 获取视频列表 | | GET | `/api/stream/video/:videoId` | 获取视频详情 | | DELETE | `/api/stream/video/:videoId` | 删除视频 | | POST | `/api/stream/video/import` | 从 URL 导入视频 | | POST | `/api/stream/video/upload-url` | 获取上传 URL | | GET | `/api/stream/video/:videoId/playback` | 获取播放信息 | ### 直播管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/stream/live/list` | 获取直播列表 | | POST | `/api/stream/live` | 创建直播 | | GET | `/api/stream/live/:liveInputId` | 获取直播详情 | | PUT | `/api/stream/live/:liveInputId` | 更新直播 | | DELETE | `/api/stream/live/:liveInputId` | 删除直播 | | GET | `/api/stream/live/:liveInputId/playback` | 获取播放信息 | | GET | `/api/stream/live/:liveInputId/recordings` | 获取录像列表 | ## 响应格式 所有接口返回统一格式: ```json { "code": 200, "msg": "success", "data": { ... } } ``` ## 与前端集成 ### 开发环境 修改 `tg-live-game-web/vite.config.ts`: ```typescript proxy: { '/api': { target: 'http://localhost:8787', changeOrigin: true } } ``` ### 生产环境 部署后修改为 Workers 地址: ```typescript proxy: { '/api': { target: 'https://tg-live-game-api.your-subdomain.workers.dev', changeOrigin: true } } ``` ## 目录结构 ``` tg-live-game-hono/ ├── src/ │ ├── index.ts # 入口 │ ├── routes/ │ │ └── stream.ts # Stream API 路由 │ ├── services/ │ │ └── cloudflare.ts # Cloudflare API 服务 │ └── types/ │ └── index.ts # 类型定义 ├── wrangler.toml # Workers 配置 ├── tsconfig.json # TypeScript 配置 ├── package.json └── README.md ```