用途:借助 VSS(Video Search & Summarization)的 Pipeline Manager 对视频执行摘要,先启动摘要管线,再轮询状态,最后获取结果。所有请求走 nginx 的 /manager 前缀,需自行运行 curl 并转述结果。
环境准备:该技能依赖 VSS 应用源码,须在应用根目录下运行。先执行捆绑的 bootstrap 脚本;它会优先查找并复用已有 VSS checkout(不重新克隆),找不到时才从 main 做浅层、单分支、稀疏检出。脚本把解析出的应用根目录打印到 stdout。SKILL_DIR=".github/skills/vss-summarize-video",APP_ROOT="$(bash "$SKILL_DIR/scripts/vss-bootstrap.sh")",然后 cd "$APP_ROOT"。可用 VSS_REPO_URL、VSS_REPO_BRANCH、VSS_CLONE_DIR 覆盖。
前置条件:先探测后端健康与摘要能力,curl -sf "$HOST/manager/health" 与 curl -s "$HOST/manager/app/features"。准备一个 videoId,可上传(POST /manager/videos,multipart,字段 video)或列出已有视频;列表响应是对象 { "videos": [...] },name 为生成的哈希,真实文件名在 url / dataStore.fileName。
启动:POST /manager/summary。缺少 title、sampling.* 或 evam.evamPipeline 会返回 400。sampling 约束为 multiFrame == frameOverlap + samplingFrame,不匹配报 "Multi frame mismatch";evamPipeline 为 object_detection 或 video_ingestion。成功返回 { "summaryPipelineId": "<STATE_ID>" }。
轮询与获取:用 GET /manager/summary/{stateId} 轮询,完成信号是 videoSummaryStatus == "complete",而非 summary 非空(摘要会先流式写出,过早判断会得到截断结果)。若 produceFinalSummary 为 false,则改以 frameSummaryStatus.inProgress == 0 为完成条件。摘要较慢,通常需要数分钟。最终摘要取 .summary;分块字幕在 .frameSummaries[],不在 .chunks[];完整数据在 /raw。可列出与删除摘要任务。无语音的音频会得到相应说明,并非错误。具体字段含义与更多选项见参考资料。