信息提交接口规范

参数规范

  • 请求 URL:

https://vsafe.ilivedata.com/api/v1/livevideo/check/submit

  • 接口描述:

提交视频直播流相关信息接口,信息提交后,会对视频进行截图检测,检测结果需自行调用视频结果获取接口。

  • 支持格式:

检测接口支持的流媒体协议如下:rtp、srtp、rtmp、rtmps、mmsh、mmst、hls、http、tcp、https等。同时支持通过 ZEGO、声网 RTC、腾讯云 TRTC 的房间或频道参数接入。

  • HTTP 请求Header:
Header 描述
Content-Type application/json;charset=UTF-8 请求体类型
Accept application/json;charset=UTF-8 接受的返回类型
X-AppId 项目的唯一标识,此值是 <控制台-服务配置>中的项目编号
X-TimeStamp 请求的UTC时间戳。需要把时间戳按W3C标准格式化,例如: 2010-01-31T23:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime)。
Authorization 签名认证说明
  • 请求方法: POST

  • 请求体JSON对象:

参数 必需 类型 描述
video 条件必需 String 普通 URL 直播必需,填写直播视频的 URL 地址;通过三方 RTC 接入时无需传入
strategyId 可选 String 策略编号,通过控制台配置。缺省时使用项目默认策略:DEFAULT
frequency 可选 Number 默认截帧设置,默认5秒截图检测一次. 可设置范围为1~60秒
segmentSeconds 可选 Number 音频片段时长,默认值等于frequecy. 可设置范围为1~60秒,且必须是frequency整数倍
lang 可选 String 视频中音频语种,不指定默认auto。支持的语种列表请查看音频审核文档
userId 可选 String 唯一的终端用户ID。 用户ID应当不超过32个字符。
userIP 可选 String 用户IP地址
did 可选 String 用户设备ID
dtype 可选 String 用户设备类型:1:iPhone 2:android 3: ipad 4:wphone 5: pc 6:web 7:wap
callbackRegion 可选 String 回调区域:默认cn,可选cn,us,ap。不给或不在取值范围内默认使用cn区域发起回调
callbackUrl 可选 String 回调url:http协议
callbackSecretKey 可选 String 回调密钥,可自行定义,需要在回调验签方式使用密钥一致,否则无法验证回调数据是否被篡改
extra 可选 json 扩展字段,可以传多个key和value,透传。比如传游戏服务器和游戏版本两个参数,传入方式:"extra":{"server": "123","version":"456"}
data 条件必需 json 三方 RTC 直播必需,填写接入方类型及房间、频道鉴权参数。支持 ZEGO、声网 RTC 和腾讯云 TRTC
  • data 参数说明:

三方 RTC 接入与普通 URL 直播共用本页提交接口。提交任务时无需传入顶层 video,需要在 data 中指定 streamType 和对应接入参数。

data 对象参数:

参数 必需 类型 描述
streamType 必需 String 三方流类型,可选值:ZEGOAGORATRTC
zegoParam 条件必需 json streamType=ZEGO 时传入
agoraParam 条件必需 json streamType=AGORA 时传入
trtcParam 条件必需 json streamType=TRTC 时传入
1. ZEGO 接入

data.zegoParam 参数:

参数 必需 类型 描述
accessToken 可选 String ZEGO 房间鉴权 Token;未启用鉴权时可不传
roomId 必需 String ZEGO 房间 ID
streamId 可选 String 指定审核的流 ID;不传时由服务发现房间内的流
userId 可选 String 加入房间执行审核的用户 ID
idleTimeMillis 可选 Number 房间内无可审核流时的最长等待时间,单位毫秒

请求体示例:

{
  "strategyId": "DEFAULT",
  "lang": "auto",
  "frequency": 5,
  "segmentSeconds": 10,
  "data": {
    "streamType": "ZEGO",
    "zegoParam": {
      "accessToken": "zego-access-token",
      "roomId": "zego-room-10001",
      "streamId": "zego-stream-20001",
      "userId": "zego-audit-user-10001",
      "idleTimeMillis": 300000
    }
  },
  "callbackRegion": "cn",
  "callbackUrl": "https://callback.example.com/video-check",
  "callbackSecretKey": "callback-secret",
  "extra": {
    "bizId": "biz-10001",
    "provider": "zego"
  }
}
2. 声网 RTC 接入

data.agoraParam 参数:

参数 必需 类型 描述
appId 必需 String 声网项目 App ID
accessToken 可选 String 声网 RTC Token;项目未启用 App Certificate 时可不传
channelId 必需 String 声网频道名
userId 必需 String 加入频道执行审核的用户 ID
streamId 可选 String 指定审核的流 ID;不传时由服务发现频道内的流
idleTimeMillis 可选 Number 频道内无可审核流时的最长等待时间,单位毫秒

请求体示例:

{
  "strategyId": "DEFAULT",
  "lang": "auto",
  "frequency": 5,
  "segmentSeconds": 10,
  "data": {
    "streamType": "AGORA",
    "agoraParam": {
      "appId": "agora-app-id",
      "accessToken": "agora-rtc-token",
      "channelId": "agora-channel-10001",
      "userId": "agora-audit-user-10001",
      "idleTimeMillis": 300000
    }
  },
  "callbackRegion": "cn",
  "callbackUrl": "https://callback.example.com/video-check",
  "callbackSecretKey": "callback-secret",
  "extra": {
    "bizId": "biz-10001",
    "provider": "agora"
  }
}
3. 腾讯云 RTC/TRTC 接入

data.trtcParam 参数:

参数 必需 类型 描述
sdkAppId 必需 String 腾讯云 RTC/TRTC 应用 ID
userSig 必需 String 加入房间所需的 UserSig
strRoomId 必需 String 字符串房间 ID
uid 必需 String 加入房间执行审核的用户 ID
streamId 可选 String 指定审核的流 ID;不传时由服务发现房间内的流
idleTimeMillis 可选 Number 房间内无可审核流时的最长等待时间,单位毫秒

请求体示例:

{
  "strategyId": "DEFAULT",
  "lang": "auto",
  "frequency": 5,
  "segmentSeconds": 10,
  "data": {
    "streamType": "TRTC",
    "trtcParam": {
      "sdkAppId": "1400000001",
      "userSig": "trtc-user-sig",
      "strRoomId": "trtc-room-10001",
      "uid": "trtc-audit-user-10001",
      "idleTimeMillis": 300000
    }
  },
  "callbackRegion": "cn",
  "callbackUrl": "https://callback.example.com/video-check",
  "callbackSecretKey": "callback-secret",
  "extra": {
    "bizId": "biz-10001",
    "provider": "trtc"
  }
}

RTC Token、UserSig 和回调密钥属于敏感信息,请通过服务端生成和传递,不要写入客户端代码、日志或公开仓库。Token 或 UserSig 的有效期需要覆盖审核服务加入房间和持续拉流的时间。

  • 普通 URL 请求体示例:

    {
      "video":"http://xxx.xxx.com/xxxx",
      "userId": "testUser"
    }
    
  • 请求签名:

签名认证说明