本文介绍云端录制回调的消息格式及相关参数说明。
云端录制回调重试机制
若接收到的响应错误码大于等于 500 或发生请求超时,系统会向用户重新发送一次回调消息。
云端录制回调消息格式
本回调通过HTTP/HTTPS协议,以POST请求方式发送回调消息到用户配置的URL中。
其中请求消息的Body为JSON格式。
收到回调消息后,期望接收方返回以下内容:
Header
HttpStatus
Body
Content-Type: application/json
200
{
"Code": 0,
"Msg": "Success"
}
云端录制回调参数说明
当前云端录制回调仅支持发送任务状态变化事件。
回调消息头(header)
参数名 | 值 |
Content-Type | application/json |
ALI-LIVE-TIMESTAMP | 仅当NotifyAuthKey有效时传递,示例值:1748417138 |
ALI-LIVE-SIGNATURE | 仅当NotifyAuthKey有效时传递,示例值:abcdefgxxx |
鉴权使用说明:当创建云端录制任务时,若传入的 NotifyAuthKey
为有效值,系统在发送回调通知至用户服务端时,HTTP 请求头中将包含 ALI-LIVE-TIMESTAMP
和 ALI-LIVE-SIGNATURE
字段,用于接收方进行签名验证,确保回调消息的合法性与安全性。
其中,ALI-LIVE-SIGNATURE
的生成规则如下:
ALI-LIVE-SIGNATURE = MD5(MD5CONTENT)
MD5CONTENT = ALI-LIVE-TIMESTAMP + "|" + NotifyAuthKey
接收回调请求后,从请求头中提取
ALI-LIVE-TIMESTAMP
和ALI-LIVE-SIGNATURE
。使用本地保存的
NotifyAuthKey
与提取出的ALI-LIVE-TIMESTAMP
,按相同规则拼接(中间用|
连接),生成MD5CONTENT
。对
MD5CONTENT
执行 MD5 计算,得到签名结果。将计算出的签名值与请求头中的
ALI-LIVE-SIGNATURE
进行比对。
若两者不一致,则说明回调请求来源不可信,建议拒绝处理,以保障系统安全。
回调消息体(body)
参数名 | 类型 | 描述 |
appId | string | 应用Id。 |
channelId | string | 频道Id。 |
taskId | string | 录制任务Id。 |
eventType | string | 事件类型,取值请参考事件类型说明表。 |
callbackTs | integer | 发送回调的时间,为毫秒级时间戳。 例如:1744774345595。 |
payload | json string | 其他信息。详细参数说明请参考其他信息说明表。 |
事件类型(eventType)说明
取值 | 含义 |
TaskCreated | 任务已创建。 |
TaskStarting | 任务启动中。 |
TaskRunning | 任务运行中。 |
TaskRecovering | 异常恢复中。 |
TaskStopping | 任务停止中。 |
TaskStopped | 任务已停止。 |
TaskStartFailed | 启动失败。 |
TaskUpdated | 更新成功。 |
TaskUpdateFailed | 更新失败。 |
RecordStart | 录制正式开始。 |
RecordFailed | 录制异常恢复超时。 |
其他信息(payload)说明
参数名 | 类型 | 描述 |
eventTs | integer | 事件发生的时间,为毫秒级时间戳。 例如:1744774345595。 |
taskStatus | string | 任务状态。取值请参见任务状态说明表。 |
errorCode | string | 错误码。取值请参见错误说明表。 |
errorMessage | string | 错误信息。取值请参见错误说明表。 |
recordFileList | FileList | 录制文件列表。具体格式请参见查询Rtc云端录制文件及任务状态中的 说明 仅当事件类型(eventType)为任务运行中(TaskRunning)、任务停止中(TaskStopping)、任务已停止(TaskStopped)时会返回。 |
streamInfo | string | 仅当时间类型为录制正式开始(RecordStart)时返回。用于表示订阅的哪一条流开始录制。
|
任务状态(taskStatus)说明
更新成功和更新失败并不影响任务状态,所以taskStatus字段中不包含这两种状态。
状态 | 含义 |
CREATED | 任务创建完成返回。 |
STARTING | 任务启动中返回。 |
RUNNING | 任务运行中返回。 |
RECOVERING | 任务异常恢复中返回。 |
STOPPING | 任务停止中返回。 |
STOPPED | 任务已停止后返回。 |
FAILED | 在任务启动失败后返回。 |
错误说明
仅当事件类型(eventType)取值为异常恢复中(TaskRecovering)、启动失败(TaskStartFailed)以及更新失败(TaskUpdateFailed)这三种类型时不为空,其他类型为空。
事件类型(eventType) | 错误码(errorCode) | 错误信息(errorMessage) | 含义 |
启动失败(TaskStartFailed) | StartTaskError | Channel already closed | 频道已关闭。 |
Start task error | 其他原因。 | ||
异常恢复中(TaskRecovering) | RunTaskError | The rms task failed | 混流模块运行异常。 |
The record task failed | 录制模块运行异常。 | ||
更新失败(TaskUpdateFailed) | UpdateTaskError | Update task error | 任务更新失败。 |
录制异常恢复超时(RecordFailed) | RunTaskError | Recovering status timeout | 异常恢复超时。 |
回调示例
{
"appId": "mytestappid",
"callbackTs": 1755504873034,
"channelId": "room1047",
"eventType": "TaskStopped",
"payload": "{\"eventTs\":1755504873014,\"taskStatus\":\"STOPPED\",\"errorCode\":\"\",\"errorMessage\":\"\",\"streamInfo\":\"\",\"recordFileList\":{\"mp3FileList\":[],\"mp4FileList\":[\"mp4/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-15:59:16.mp4\",\"mp4/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-16:02:16.mp4\"],\"hlsFileList\":[\"hls/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-15:59:16.m3u8\",\"hls/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-16:02:16.m3u8\"],\"vodMediaList\":[]}}",
"taskId": "fe60a6e3-cecb-3fae-a8cf-3d2391f507a5"
}