설명 없음

yb 6afc4e77c7 update code 3 주 전
.claude 6afc4e77c7 update code 3 주 전
src 01b0543b1e Add new routes for cameras, sessions, and stats; implement audit logging and soft delete functionality 3 주 전
.dev.vars.example 8d532091df update code 3 주 전
.gitignore 2fae9f3bd8 update code 1 개월 전
README.md 2fae9f3bd8 update code 1 개월 전
package-lock.json 2fae9f3bd8 update code 1 개월 전
package.json 3920bbe602 Add remote development script to package.json and update database ID in wrangler.toml 3 주 전
pnpm-lock.yaml 31a81b487e update code 3 주 전
postman_collection.json 01b0543b1e Add new routes for cameras, sessions, and stats; implement audit logging and soft delete functionality 3 주 전
schema.sql 8d532091df update code 3 주 전
tg-live-game.postman_collection.json 01b0543b1e Add new routes for cameras, sessions, and stats; implement audit logging and soft delete functionality 3 주 전
tsconfig.json 2fae9f3bd8 update code 1 개월 전
wrangler.toml 5a919ad6f9 Add JWT configuration variables to wrangler.toml for production environment 3 주 전

README.md

TG Live Game Hono API

Cloudflare Stream API 后端服务,基于 Hono + Cloudflare Workers。

功能

  • 视频管理(列表、详情、删除、导入)
  • 直播管理(创建、列表、详情、删除)
  • 播放地址生成
  • 录像管理

快速开始

1. 安装依赖

npm install

2. 配置环境变量

# 复制配置文件
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. 本地开发

npm run dev

服务将在 http://localhost:8787 启动。

4. 部署到 Cloudflare Workers

# 设置 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 获取录像列表

响应格式

所有接口返回统一格式:

{
  "code": 200,
  "msg": "success",
  "data": { ... }
}

与前端集成

开发环境

修改 tg-live-game-web/vite.config.ts

proxy: {
  '/api': {
    target: 'http://localhost:8787',
    changeOrigin: true
  }
}

生产环境

部署后修改为 Workers 地址:

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