| 功能(端口/接口) | 支持情况 |
|---|---|
文生视频video/text/generate | ✅ |
图生视频video/img/generate | ✅ |
POSTapplication/json| Header 名称 | 类型 | 说明 |
|---|---|---|
Webhook-Timestamp | string | Unix 时间戳(秒级) |
Webhook-Nonce | string | 32 位随机字符串,由大小写字母和数字组成 |
Webhook-Signature | string | 请求签名(Base64 编码的 HMAC-SHA256) |
Ai-Trace-Id | string | 请求追踪 ID,用于问题排查 |
Content-Type | string | 固定值 application/json |
{
"id": "123456789",
"status": 1,
"url": "https://example.com/video.mp4",
"size": 10.5,
"has_audio": true,
"credits": 100
}\n 连接:{timestamp}\n{nonce}\n{url_encoded_payload}timestamp:从 Webhook-Timestamp 请求头获取nonce:从 Webhook-Nonce 请求头获取url_encoded_payload:将 JSON Body 的各字段按 URL Query String 格式编码key=value 格式,并使用 & 连接。{
"id": "123456789",
"status": 1,
"url": "https://example.com/video.mp4",
"has_audio": true
}has_audio=true&id=123456789&status=1&url=https%3A%2F%2Fexample.com%2Fvideo.mp4⚠️ 注意:URL Values 编码通常会按 key 的字母顺序排序。
Secret Key 为密钥对待签名字符串进行签名,然后进行 Base64 编码。signature = Base64(HMAC-SHA256(secret_key, sign_string))Webhook-Signature 进行比对。| 项目 | 要求 |
|---|---|
| HTTP Status Code | 200 |
| Response Body | ok(小写,不含引号和其他字符) |
HTTP/1.1 200 OK
Content-Type: text/plain
okok 时,系统会进行重试。| 重试次数 | 间隔时间 |
|---|---|
| 第 1 次 | 2 秒 |
| 第 2 次 | 10 秒 |
| 第 3 次 | 30 秒 |
| 第 4 次 | 1 分钟 |
| 第 5 次 | 5 分钟 |
| 第 6 次 | 15 分钟 |
| 第 7 次 | 1 小时 |
| 第 8 次 | 4 小时 |
说明:每次重试间隔会有 ±10% 的随机抖动,以避免重试风暴。达到最大重试次数后,任务将标记为失败 。
Webhook-Timestamp 是否在合理范围内(如 5 分钟内),以防止重放攻击。hmac.compare_digest(Python)、crypto.timingSafeEqual(Node.js)或 MessageDigest.isEqual(Java)等函数进行签名比对,以防止时序攻击。id 字段进行去重,确保业务逻辑的幂等性。\n)true/false)