Files
20260512-skg-tk/api

SKG TK 二创 API

FastAPI 后端,跑 yt-dlp + ffmpeg + ASR/翻译/英文 SKG 产品介绍文案 + MiniMax 英文配音管线。

启动

cd api
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env  # 按需填 LLM_API_KEY / MINIMAX_API_KEY
uvicorn main:app --host 127.0.0.1 --port 4291

不要在长下载、抽帧、音频处理时带 --reload 跑后端reload 会等待后台任务结束,表现为端口还在但新请求卡住。

路由

  • GET /health — 健康检查 + 配置状态
  • POST /jobs {url} — 创建 job后台下载源视频视频就绪后可手动解析或提取音频
  • GET /jobs/{id} — 当前状态 + 产物;若原始音轨已拆出,会返回 source_audio_url
  • POST /jobs/{id}/transcribe — 触发音频提取 + ASR + 翻译 + SKG 英文产品介绍文案;文案长度按原音频时长估算,配置 MiniMax 后从英文随机音色池生成配音。前端 Audio 节点提供“提取音频 / 重新提取音频”按钮,可与抽帧并行,不自动触发
  • GET /jobs/{id}/video.mp4 — 原视频
  • GET /jobs/{id}/audio.wav — 拆轨后的原始音频,供前端底部音频条生成波形
  • GET /jobs/{id}/audio-script.mp3 — 英文改写文案的 MiniMax 配音
  • GET /jobs/{id}/frames/{i}.jpg — 第 i 张关键帧0-9

Mock 模式

未设 LLM_API_KEY 时,转录走本地 mock便于 UI 联调;未设 MINIMAX_API_KEY 时只生成改写文案,不生成配音文件。

依赖

  • ffmpeg 系统二进制(拆轨 / 抽帧)
  • yt-dlp 系统二进制(也可走 Python 包)
  • OpenAI 兼容 LLM 网关ASR / 翻译 / 文案改写);如果 /audio/transcriptions 不可用,会用 ASR_FALLBACK_MODEL 走 Gemini 多模态音频识别
  • MiniMax T2A HTTP英文产品介绍文案配音使用 MINIMAX_API_KEY;默认随机音色池 English_magnetic_voiced_man,English_Upbeat_Woman,English_MaturePartner