# 视频任务与验收资料

本包不含 Key，不自动创建视频，不代表新一轮通道实测。

## 商品与批量任务

- `product-shot-brief.json`：商品事实、首帧、镜头运动和人工保留项。替换占位素材，按当前通道核对参数。
- `product-request.json`：首帧请求结构，执行前必须替换 `YOUR-PUBLIC-IMAGE-HOST` 并核对型号与参数；不要直接提交占位模板。
- `video-jobs.csv`：与 apizt 本地视频任务记录工具对应，7 个字段。费用未知用 `unknown`，不要用 0 代替。
- `video-acceptance.csv`：逐项记录实际尺寸、时长、音轨、解码、主体和文字；人工通过后才改为可用。

下载原有 `seedance-task.py` 可提交一次并保存状态；下载 `tokenba-case-runner.py` 可单独保存返回文件。创建任务可能计费，POST 超时不自动重提。GET 超时后用同一个 task_id 恢复查询。

## n8n

`n8n-video-query.json` 仅查询一个已经存在的 task_id，GET 一次后停止，没有 POST、Wait 循环或发布节点。

1. 导入工作流，保持 inactive。
2. 在 Task context 修改 input_id、已有 task_id、准确 model。默认占位 task_id 会在请求前停止。
3. HTTP Request 选择自己的 Header Auth 凭据：Authorization 的值为 Bearer 加自己的 Key。文件不含凭据 ID。
4. 在当前 n8n 中核对 GET 方法、完整响应、JSON 格式、30 秒超时、不跟随跳转、Retry On Fail 关闭。
5. 执行后将脱敏记录保存到自己的表格/数据库；模板没有持久化存储。queued/running 合并为 processing，无法确定的响应保留 unknown。
6. 要接循环，先持久化 task_id、deadline、poll_count，再添加 Wait 和到期出口；仅 GET 可恢复查询，禁止将循环回接 POST。

此模板已核对 JSON、节点连接与路由固定样本，尚未在在线 n8n 实例导入或调用验证。

## 本地 MP4 检查

先安装 FFmpeg 与 ffprobe，再运行 Python 3.10+：

```bash
python3 video-quality-check.py output.mp4 --size 720x720 --duration 4
python3 video-quality-check.py output.mp4 --size 720x720 --duration 4 --expect-no-audio
```

脚本只处理明确指定的本地 MP4，上限 300 MiB。检查 ftyp、实际尺寸、时长、音轨以及完整解码；每次媒体工具执行上限 120 秒。默认时长误差容许 0.25 秒，可用 `--duration-tolerance` 修改。

退出码 0 表示本次技术条件通过，1 表示条件未通过，2 表示检查尚未确认。输出始终保留 `manual_review_status=pending`；不会证明商品一致性、文字、声音内容或真实费用。`--expect-no-audio` 要求没有音轨，即使音轨静音也未通过。

完整技术解码不等于用户播放器兼容，仍须全片播放并核对产品事实、动作连续性、文字、音频和发布规格。API 的 succeeded 也不等于验收通过。
