任务提交接口

提交普通 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 必须分别处理。