素材库视频转码/审核状态回调通知
作用
用户将视频上传至素材库后,视频会依次经历「转码 → 审核」两个异步处理阶段。开启本回调后,当素材库视频在转码成功/失败、审核通过/不通过时,服务端会向客户在「回调设置」中配置的接口地址以 POST 方式推送通知,便于客户感知素材处理进度并做后续处理(典型场景:伪直播选择素材前,先确认视频已转码完成且审核通过)。
回调失败重试
- 接口如果没有返回 http status 200 状态码,会认为客户处理本次回调失败,针对失败的情况,会重试 3 次 回调。
回调参数说明
- 请求方式: POST
- Content-Type: application/json
说明:签名
sign与时间戳timestamp随 BODY 一起提交,不会出现在 URL query 参数中(与本站部分将签名放在 query 的回调不同,接入时请以 BODY 为准)。
事件类型说明
event 字段取值如下:
| event 值 | 含义 | 触发时机 |
|---|---|---|
transcode_success |
转码成功 | 素材库视频转码处理完成(进入待审核或正常可用状态) |
transcode_fail |
转码失败 | 素材库视频转码失败 |
audit_pass |
审核通过 | 素材库视频审核通过(含免审用户直接通过) |
audit_fail |
审核不通过 | 素材库视频审核不通过 |
转码与审核是两个独立阶段:若视频需审核,转码完成后会先推送
transcode_success,审核完成后再单独推送audit_pass/audit_fail。
BODY 参数
| 参数名 | 类型及范围 | 说明 |
|---|---|---|
| materialId | string | 素材 ID |
| event | string | 回调事件,取值见上方「事件类型说明」 |
| title | string | 素材名称 |
| duration | integer | 视频时长,单位:秒 |
| remark | string | 失败/不通过原因。仅 transcode_fail、audit_fail 携带;成功类事件为空字符串 |
| timestamp | string | 13 位毫秒时间戳 |
| sign | string | 签名,用于校验回调真实性,生成规则见下方「签名规则」 |
签名规则
为防止回调请求被伪造,请务必校验 sign 的正确性。
- 签名拼接方式:
sign = encrypt(appSecret + timestamp) encrypt取决于账号「回调签名加密方式」设置:- 默认为 MD5:
sign = MD5(appSecret + timestamp)(32 位小写) - 若设置为 SHA256:
sign = SHA256(appSecret + timestamp)
- 默认为 MD5:
appSecret为账号的开发者密钥,timestamp为本次回调 BODY 中的timestamp。- 校验时:取出 BODY 中的
timestamp,用同样的拼接与加密方式计算本地签名,与 BODY 中的sign比对,一致则为合法请求。
回调数据示例
请求地址示例:https://www.example.com/xxx/callback(sign、timestamp 在下方 BODY 中)
请求体(body 参数:application/json)示例
转码成功(transcode_success,成功类事件 remark 为空)
{
"materialId": "1a2b3c4d5e6f",
"event": "transcode_success",
"title": "产品介绍视频.mp4",
"duration": 62,
"remark": "",
"timestamp": "1701964858687",
"sign": "d5079f2e8ba19e49bfd3d9575866d80f"
}
转码失败(transcode_fail,remark 携带失败原因)
{
"materialId": "1a2b3c4d5e6f",
"event": "transcode_fail",
"title": "产品介绍视频.mp4",
"duration": 0,
"remark": "转码失败,请检查视频格式或重新上传",
"timestamp": "1701964858687",
"sign": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
}
审核通过(audit_pass)与转码成功结构一致,event 为 audit_pass;审核不通过(audit_fail)与转码失败结构一致,event 为 audit_fail 且 remark 携带不通过原因。
如何设置
通过后台设置:
登录账户 - 进入【云直播】 - 点击【开发设置】- 点击【回调设置】- 素材库视频转码/审核状态回调
注意:提交的接口地址必须要以 http:// 或者 https:// 开头。
业务说明
- 状态阶段:素材库视频处理依次为
转码 → 审核。转码成功(transcode_success)后视频文件已生成;若账号开启了内容审核,视频还需等待审核结果(audit_pass/audit_fail)。 - 伪直播等可用时机:若用于伪直播选素材等场景,建议以收到 **
audit_pass**(审核通过,或账号免审时为该事件直接通过)作为视频可用的最终依据;仅收到transcode_success并不代表已通过审核。 - 回调地址未配置:未在「回调设置」配置本回调地址时,不会推送任何通知(也不会报错)。
