任务提交接口
更新时间:
提交普通 URL 直播或 ZEGO、Agora、TRTC 房间/频道审核。项目策略决定是否审核图片、音频。
POSThttps://vsafe.ilivedata.com/api/v1/livevideo/check/submit
请求格式
请求体使用 UTF-8 编码的 JSON。
请求头
必需
说明
Content-Type
是
application/json; charset=UTF-8
Accept
建议
application/json
鉴权相关请求头及签名规则见帮助中心请求签名。查询和停止任务时,请使用提交任务时的项目。
直播视频要求
- 直播支持类型:URL 拉流、RTC 房间/频道接入,不支持 BASE64
- 直播支持协议:rtp, rtmp, rtmps, mmsh, mmst, hls, http, tcp, https(适用条件见下)。hls 使用 http/https 播放列表地址
- 协议适用条件:rtp 仅适用于无需额外 SDP 会话描述即可识别媒体负载的流;tcp 须承载可自动识别的媒体封装。两者均需先确认部署网络及端口可达,并完成拉流验证;当前接口不支持传入 srtp 解密参数,暂不支持直接接入 srtp 加密流
- 直播地址要求:使用可直接拉取的直播流地址或 HLS 播放列表地址,不使用播放器网页地址;审核期间须保持地址及鉴权有效,HLS 播放列表和媒体分片均须可访问
- 直播内容要求:视频轨道须可解码;需要音频审核时,音频轨道也须可解码。实际可处理性取决于流中的音视频编码,不能仅根据协议或地址后缀判断
- RTC 接入要求:支持 ZEGO、Agora、TRTC,通过
data 提供平台及房间/频道参数,并按平台鉴权配置提供有效的入房凭证;审核账号须能够加入并订阅待审核音视频
请求体
参数
类型
必需
说明
video
String
条件必需
普通直播必填,使用顶层 URL;支持协议及适用条件见上方“直播视频要求”。RTC 无需传入;data.url 不能替代普通直播的 video。
frequency
Integer
否
截帧间隔,秒,1~60;省略时取项目配置,未配置默认 5 秒。
segmentSeconds
Integer
否
音频/录制分段间隔,秒,1~60。传 frequency 时默认等于它,显式值必须不小于 frequency,且为其整数倍。未传 frequency 时两者取项目配置,单独设置本字段不会覆盖项目配置。
liveDirectMedia
Boolean
否
仅用于普通 URL 直播:true 直接输出图片和音频,不录制视频段;省略或 false 仍按项目策略,不会强制关闭。
data
Object
条件必需
RTC 必需,包含 streamType 和对应参数对象;只支持在 data 中指定接入参数。
strategyId
String
否
审核策略,默认 DEFAULT。
lang
String
否
音频语种;未传或空字符串为 auto。语言支持
alternativeTags
Integer[]
否
额外审核分类,只接受 100,110,120,130,140,150,160,170,180,190,900,999;不等于结果分类的完整列表。
userId
String
否
业务终端用户 ID,建议不超过 32 字符;不是 RTC 推流对象筛选条件。
userIP
String
否
业务用户 IP。
did
String
否
设备 ID。
dtype
String
否
设备类型:1 iPhone、2 Android、3 iPad、4 Windows Phone、5 PC、6 Web、7 WAP。
callbackRegion
String
否
回调区域:cn/us/eu/ap;优先使用任务所属区域,本字段仅在无法获取任务区域时参与选择。
callbackUrl
String
否
HTTP/HTTPS 接收地址;与 callbackSecretKey 均非空时覆盖项目回调配置。
callbackSecretKey
String
否
与接收端一致的回调验签密钥;只传地址或只传密钥时回退到项目配置。
extra
Object
否
透传 JSON 对象,最多 20 个键值对;有结果时可返回,状态响应可能省略。
RTC 接入范围
data.streamType
参数对象
实际审核范围
ZEGO
data.zegoParam
传 streamId 时审核指定流,否则发现房间中的流。
AGORA
data.agoraParam
订阅频道内的远端音视频;不支持通过 streamId 指定审核对象,请勿传入该字段。
TRTC
data.trtcParam
按房间内远端用户录制;不支持通过 streamId 指定审核对象,请勿传入该字段。
RTC 参数中的 userId/uid 是加入房间的审核账号,不是被审核用户。结果中的 liveUserId 才是片段实际推流者。服务端 Agora 接入与客户端声网插件是不同接入方式,不能混用协议。
ZEGO — data.zegoParam
参数
类型
必需
说明
accessToken
String
否
ZEGO 入房 Token,按房间鉴权配置提供。
roomId
String
是
房间或频道标识。
userId
String
否
审核服务加入房间使用的账号,不用于筛选推流者。
streamId
String
否
指定审核流;省略时使用房间模式。
idleTimeMillis
Integer
否
SDK 音频静默设置,单位毫秒,未传默认 300000;不等同于房间空闲退出计时。
mixAudio
Boolean
否
默认 false,分流音频;true 为房间混音,混音片段不返回个人 liveUserId。
enableVad
Boolean
否
默认 false;true 过滤静音音频,可能改变片段数量和回调时机。
firstFrameBlackFilter
Boolean
否
默认 false;true 过滤启动阶段首帧黑屏。
AGORA — data.agoraParam
参数
类型
必需
说明
appId
String
是
Agora 应用 ID。
accessToken
String
否
Agora 频道 Token,按频道鉴权配置提供。
channelId
String
是
房间或频道标识。
userId
String
是
审核服务加入房间使用的账号,不用于筛选推流者。
idleTimeMillis
Integer
否
频道无远端用户时的等待时长,单位毫秒;未传或非正值使用 300000。
Agora 当前不支持 mixAudio、enableVad、firstFrameBlackFilter 请求开关,请勿传入。
TRTC — data.trtcParam
参数
类型
必需
说明
sdkAppId
String
是
TRTC 应用 ID,使用正整数字符串。
userSig
String
是
与入房账号 uid 对应的 TRTC UserSig。
strRoomId
String
是
房间/频道标识;TRTC 可解析为正整数的值按数字房间处理,其余按字符串房间处理。
uid
String
是
审核服务加入房间使用的账号,不用于筛选推流者。
idleTimeMillis
Integer
否
无活跃录制用户时的等待时长,单位毫秒;未传默认 300000,正值启用超时。建议明确传入正值。
enableVad
Boolean
否
默认 false;true 过滤静音音频,可能改变片段数量和回调时机。
firstFrameBlackFilter
Boolean
否
默认 false;true 过滤启动阶段首帧黑屏。
重复提交
已有任务的去重标识仍有效时,普通直播按“项目 + 策略 + URL”复用任务;RTC 按“项目 + 平台 + 房间/频道”复用任务,后者不包含策略或流 ID。重复提交返回已有任务 ID,不更新原任务的 Token、策略、采样或回调配置。变更配置需停止原任务并等待结束及清理后重新提交,以响应体 result.taskId 为准。
请求示例
普通 URL 直播
{
"video": "https://media.example.com/live.m3u8",
"frequency": 5,
"segmentSeconds": 10,
"liveDirectMedia": true,
"extra": {
"bizId": "live-10001"
}
}
ZEGO
{
"frequency": 5,
"segmentSeconds": 10,
"data": {
"streamType": "ZEGO",
"zegoParam": {
"roomId": "room-10001",
"userId": "audit-10001",
"streamId": "stream-10001",
"accessToken": "replace-with-provider-token",
"mixAudio": false,
"idleTimeMillis": 300000
}
},
"callbackUrl": "https://callback.example.com/video-check",
"callbackSecretKey": "replace-with-callback-secret",
"extra": {
"bizId": "rtc-10001"
}
}
AGORA
{
"frequency": 5,
"segmentSeconds": 10,
"data": {
"streamType": "AGORA",
"agoraParam": {
"appId": "replace-with-agora-app-id",
"channelId": "channel-10001",
"userId": "audit-10001",
"accessToken": "replace-with-provider-token",
"idleTimeMillis": 300000
}
},
"callbackUrl": "https://callback.example.com/video-check",
"callbackSecretKey": "replace-with-callback-secret",
"extra": {
"bizId": "rtc-10001"
}
}
TRTC
{
"frequency": 5,
"segmentSeconds": 10,
"data": {
"streamType": "TRTC",
"trtcParam": {
"sdkAppId": "1400000001",
"strRoomId": "room-10001",
"uid": "audit-10001",
"userSig": "replace-with-provider-user-sig",
"idleTimeMillis": 300000
}
},
"callbackUrl": "https://callback.example.com/video-check",
"callbackSecretKey": "replace-with-callback-secret",
"extra": {
"bizId": "rtc-10001"
}
}
示例凭据与地址均为占位值。平台凭据必须在入房和持续审核期间有效,并具备接收相应媒体的权限。
响应格式
响应体为 JSON,响应头 Content-Type: application/json。
字段
类型
说明
errorCode
Integer
0 表示提交成功,不代表审核已完成。
errorMessage
String
错误信息,成功时通常省略。
result.taskId
String
后续查询、停止和回调关联使用的任务 ID。
result.result
Integer
0 表示提交成功,不是审核结论。
{
"errorCode": 0,
"result": {
"taskId": "cn_00000000-0000-0000-0000-000000000001_1791763200000",
"result": 0
}
}
请保存响应体中的 result.taskId。示例 ID 不可直接用于后续请求。
错误处理
参见错误码与处理建议。HTTP 状态、errorCode、任务状态 code 和审核结论 result 必须分别处理。
提交普通 URL 直播或 ZEGO、Agora、TRTC 房间/频道审核。项目策略决定是否审核图片、音频。
POST
https://vsafe.ilivedata.com/api/v1/livevideo/check/submit请求格式
请求体使用 UTF-8 编码的 JSON。
| 请求头 | 必需 | 说明 |
|---|---|---|
Content-Type |
是 | application/json; charset=UTF-8 |
Accept |
建议 | application/json |
鉴权相关请求头及签名规则见帮助中心请求签名。查询和停止任务时,请使用提交任务时的项目。
直播视频要求
- 直播支持类型:URL 拉流、RTC 房间/频道接入,不支持 BASE64
- 直播支持协议:rtp, rtmp, rtmps, mmsh, mmst, hls, http, tcp, https(适用条件见下)。hls 使用 http/https 播放列表地址
- 协议适用条件:rtp 仅适用于无需额外 SDP 会话描述即可识别媒体负载的流;tcp 须承载可自动识别的媒体封装。两者均需先确认部署网络及端口可达,并完成拉流验证;当前接口不支持传入 srtp 解密参数,暂不支持直接接入 srtp 加密流
- 直播地址要求:使用可直接拉取的直播流地址或 HLS 播放列表地址,不使用播放器网页地址;审核期间须保持地址及鉴权有效,HLS 播放列表和媒体分片均须可访问
- 直播内容要求:视频轨道须可解码;需要音频审核时,音频轨道也须可解码。实际可处理性取决于流中的音视频编码,不能仅根据协议或地址后缀判断
- RTC 接入要求:支持 ZEGO、Agora、TRTC,通过
data提供平台及房间/频道参数,并按平台鉴权配置提供有效的入房凭证;审核账号须能够加入并订阅待审核音视频
请求体
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
video |
String | 条件必需 | 普通直播必填,使用顶层 URL;支持协议及适用条件见上方“直播视频要求”。RTC 无需传入;data.url 不能替代普通直播的 video。 |
frequency |
Integer | 否 | 截帧间隔,秒,1~60;省略时取项目配置,未配置默认 5 秒。 |
segmentSeconds |
Integer | 否 | 音频/录制分段间隔,秒,1~60。传 frequency 时默认等于它,显式值必须不小于 frequency,且为其整数倍。未传 frequency 时两者取项目配置,单独设置本字段不会覆盖项目配置。 |
liveDirectMedia |
Boolean | 否 | 仅用于普通 URL 直播:true 直接输出图片和音频,不录制视频段;省略或 false 仍按项目策略,不会强制关闭。 |
data |
Object | 条件必需 | RTC 必需,包含 streamType 和对应参数对象;只支持在 data 中指定接入参数。 |
strategyId |
String | 否 | 审核策略,默认 DEFAULT。 |
lang |
String | 否 | 音频语种;未传或空字符串为 auto。语言支持 |
alternativeTags |
Integer[] | 否 | 额外审核分类,只接受 100,110,120,130,140,150,160,170,180,190,900,999;不等于结果分类的完整列表。 |
userId |
String | 否 | 业务终端用户 ID,建议不超过 32 字符;不是 RTC 推流对象筛选条件。 |
userIP |
String | 否 | 业务用户 IP。 |
did |
String | 否 | 设备 ID。 |
dtype |
String | 否 | 设备类型:1 iPhone、2 Android、3 iPad、4 Windows Phone、5 PC、6 Web、7 WAP。 |
callbackRegion |
String | 否 | 回调区域:cn/us/eu/ap;优先使用任务所属区域,本字段仅在无法获取任务区域时参与选择。 |
callbackUrl |
String | 否 | HTTP/HTTPS 接收地址;与 callbackSecretKey 均非空时覆盖项目回调配置。 |
callbackSecretKey |
String | 否 | 与接收端一致的回调验签密钥;只传地址或只传密钥时回退到项目配置。 |
extra |
Object | 否 | 透传 JSON 对象,最多 20 个键值对;有结果时可返回,状态响应可能省略。 |
RTC 接入范围
data.streamType |
参数对象 | 实际审核范围 |
|---|---|---|
ZEGO |
data.zegoParam |
传 streamId 时审核指定流,否则发现房间中的流。 |
AGORA |
data.agoraParam |
订阅频道内的远端音视频;不支持通过 streamId 指定审核对象,请勿传入该字段。 |
TRTC |
data.trtcParam |
按房间内远端用户录制;不支持通过 streamId 指定审核对象,请勿传入该字段。 |
RTC 参数中的 userId/uid 是加入房间的审核账号,不是被审核用户。结果中的 liveUserId 才是片段实际推流者。服务端 Agora 接入与客户端声网插件是不同接入方式,不能混用协议。
ZEGO — data.zegoParam
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
accessToken |
String | 否 | ZEGO 入房 Token,按房间鉴权配置提供。 |
roomId |
String | 是 | 房间或频道标识。 |
userId |
String | 否 | 审核服务加入房间使用的账号,不用于筛选推流者。 |
streamId |
String | 否 | 指定审核流;省略时使用房间模式。 |
idleTimeMillis |
Integer | 否 | SDK 音频静默设置,单位毫秒,未传默认 300000;不等同于房间空闲退出计时。 |
mixAudio |
Boolean | 否 | 默认 false,分流音频;true 为房间混音,混音片段不返回个人 liveUserId。 |
enableVad |
Boolean | 否 | 默认 false;true 过滤静音音频,可能改变片段数量和回调时机。 |
firstFrameBlackFilter |
Boolean | 否 | 默认 false;true 过滤启动阶段首帧黑屏。 |
AGORA — data.agoraParam
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
appId |
String | 是 | Agora 应用 ID。 |
accessToken |
String | 否 | Agora 频道 Token,按频道鉴权配置提供。 |
channelId |
String | 是 | 房间或频道标识。 |
userId |
String | 是 | 审核服务加入房间使用的账号,不用于筛选推流者。 |
idleTimeMillis |
Integer | 否 | 频道无远端用户时的等待时长,单位毫秒;未传或非正值使用 300000。 |
Agora 当前不支持 mixAudio、enableVad、firstFrameBlackFilter 请求开关,请勿传入。
TRTC — data.trtcParam
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
sdkAppId |
String | 是 | TRTC 应用 ID,使用正整数字符串。 |
userSig |
String | 是 | 与入房账号 uid 对应的 TRTC UserSig。 |
strRoomId |
String | 是 | 房间/频道标识;TRTC 可解析为正整数的值按数字房间处理,其余按字符串房间处理。 |
uid |
String | 是 | 审核服务加入房间使用的账号,不用于筛选推流者。 |
idleTimeMillis |
Integer | 否 | 无活跃录制用户时的等待时长,单位毫秒;未传默认 300000,正值启用超时。建议明确传入正值。 |
enableVad |
Boolean | 否 | 默认 false;true 过滤静音音频,可能改变片段数量和回调时机。 |
firstFrameBlackFilter |
Boolean | 否 | 默认 false;true 过滤启动阶段首帧黑屏。 |
重复提交
已有任务的去重标识仍有效时,普通直播按“项目 + 策略 + URL”复用任务;RTC 按“项目 + 平台 + 房间/频道”复用任务,后者不包含策略或流 ID。重复提交返回已有任务 ID,不更新原任务的 Token、策略、采样或回调配置。变更配置需停止原任务并等待结束及清理后重新提交,以响应体 result.taskId 为准。
请求示例
普通 URL 直播
{
"video": "https://media.example.com/live.m3u8",
"frequency": 5,
"segmentSeconds": 10,
"liveDirectMedia": true,
"extra": {
"bizId": "live-10001"
}
}
ZEGO
{
"frequency": 5,
"segmentSeconds": 10,
"data": {
"streamType": "ZEGO",
"zegoParam": {
"roomId": "room-10001",
"userId": "audit-10001",
"streamId": "stream-10001",
"accessToken": "replace-with-provider-token",
"mixAudio": false,
"idleTimeMillis": 300000
}
},
"callbackUrl": "https://callback.example.com/video-check",
"callbackSecretKey": "replace-with-callback-secret",
"extra": {
"bizId": "rtc-10001"
}
}
AGORA
{
"frequency": 5,
"segmentSeconds": 10,
"data": {
"streamType": "AGORA",
"agoraParam": {
"appId": "replace-with-agora-app-id",
"channelId": "channel-10001",
"userId": "audit-10001",
"accessToken": "replace-with-provider-token",
"idleTimeMillis": 300000
}
},
"callbackUrl": "https://callback.example.com/video-check",
"callbackSecretKey": "replace-with-callback-secret",
"extra": {
"bizId": "rtc-10001"
}
}
TRTC
{
"frequency": 5,
"segmentSeconds": 10,
"data": {
"streamType": "TRTC",
"trtcParam": {
"sdkAppId": "1400000001",
"strRoomId": "room-10001",
"uid": "audit-10001",
"userSig": "replace-with-provider-user-sig",
"idleTimeMillis": 300000
}
},
"callbackUrl": "https://callback.example.com/video-check",
"callbackSecretKey": "replace-with-callback-secret",
"extra": {
"bizId": "rtc-10001"
}
}
示例凭据与地址均为占位值。平台凭据必须在入房和持续审核期间有效,并具备接收相应媒体的权限。
响应格式
响应体为 JSON,响应头 Content-Type: application/json。
| 字段 | 类型 | 说明 |
|---|---|---|
errorCode |
Integer | 0 表示提交成功,不代表审核已完成。 |
errorMessage |
String | 错误信息,成功时通常省略。 |
result.taskId |
String | 后续查询、停止和回调关联使用的任务 ID。 |
result.result |
Integer | 0 表示提交成功,不是审核结论。 |
{
"errorCode": 0,
"result": {
"taskId": "cn_00000000-0000-0000-0000-000000000001_1791763200000",
"result": 0
}
}
请保存响应体中的 result.taskId。示例 ID 不可直接用于后续请求。
错误处理
参见错误码与处理建议。HTTP 状态、errorCode、任务状态 code 和审核结论 result 必须分别处理。