aihub-video-post-processing
SKILL.md
视频后处理中心
本 skill 负责视频后处理相关能力,当前包含:
- 视频合成:将多个视频片段按时间轴合成为一个完整视频(appId:
afe8478c-6a83-43da-86d0-f3c389633558) - 字幕合成:为已合成视频生成并附加字幕,输出字幕文件 URL(appId:
4cde9562-a88a-4883-9813-a88c0d9e6d88)
使用前置条件
- 设置环境变量:
AIHUB_AGENT_TOKEN(如未设置,脚本会报错退出) - 如需申请 token,请联系 吴林金(ND)(405198)
API 基础信息
- Base URL:
https://bv.new.ndhy.com/api/agent/aihub - 鉴权:
Authorization: Bearer <AIHUB_AGENT_TOKEN> - 触发:
POST /workflows/run - 查状态:
GET /workflows/runs/:runId - 取输出:
GET /workflows/runs/:runId/outputs
PowerShell 调用模板
$BaseUrl = "https://bv.new.ndhy.com/api/agent/aihub"
$Token = $env:AIHUB_AGENT_TOKEN
if (-not $Token) { throw "Missing env: AIHUB_AGENT_TOKEN" }
$Headers = @{
Authorization = "Bearer $Token"
"Content-Type" = "application/json"
}
function Start-AIHubWorkflowRun {
param([string]$AppId, [hashtable]$Inputs)
$body = @{ appId = $AppId; inputs = $Inputs } | ConvertTo-Json -Depth 20 -Compress
return Invoke-RestMethod -Method Post -Uri "$BaseUrl/workflows/run" -Headers $Headers -Body $body
}
function Get-AIHubWorkflowRunStatus {
param([string]$RunId)
return Invoke-RestMethod -Method Get -Uri "$BaseUrl/workflows/runs/$RunId" -Headers $Headers
}
function Get-AIHubWorkflowRunOutputs {
param([string]$RunId)
return Invoke-RestMethod -Method Get -Uri "$BaseUrl/workflows/runs/$RunId/outputs" -Headers $Headers
}
function Wait-AIHubWorkflowRun {
param([string]$RunId, [int]$IntervalSec = 15, [int]$TimeoutSec = 1200)
$start = Get-Date
while ($true) {
$st = Get-AIHubWorkflowRunStatus -RunId $RunId
Write-Host "[$((Get-Date).ToString('HH:mm:ss'))] status: $($st.status)"
if ($st.status -eq "succeeded" -or $st.status -eq "failed") { return $st }
if (((Get-Date) - $start).TotalSeconds -ge $TimeoutSec) { return $st }
Start-Sleep -Seconds $IntervalSec
}
}
工作流程
1. 确定入参
用户需提供:
video_params:视频片段列表(JSON 字符串),每个片段包含video_url、video_string、width、height、start、end、durationaudio_params:音频参数(JSON 字符串,无音频传"[]")subtitle_params:字幕参数(JSON 字符串,无字幕传"[]")width:输出视频宽度(整数,如1920)height:输出视频高度(整数,如1080)is_web_project:是否为 web 项目(字符串"是"或"否")
注意:
video_params/audio_params/subtitle_params传入 API 时是 JSON 字符串,不是对象,需提前用ConvertTo-Json或直接传字符串字面量。
2. 触发任务
字幕合成入参
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
vid |
string | ✅ | 来自视频合成 Bot 输出的 vid,若无则先执行视频合成 |
video_url |
string | ❌ | 一般传 null |
screen_type |
string | ✅ | "横屏" 或 "竖屏",仅支持 1080p |
duration_ms |
number | ✅ | 视频总时长,单位毫秒(注意:不是微秒) |
参见 references/video-subtitle.md 中的完整示例。
已知 Bot 列表
视频合成任务耗时通常较长(数十秒到数分钟),建议:
- 轮询间隔:15 秒
- 超时时间:1200 秒(20 分钟)
4. 返回结果
任务完成后向用户汇报:
- ✅ 状态(succeeded / failed)
- 📄 输出字段(视频 URL 等)
- ❌ 若失败,展示错误信息
已知 Bot 列表
见 references/video-compose.md(视频合成)和 references/video-subtitle.md(字幕合成)。