信息提交接口规范
更新时间:
参数规范
- 请求 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
三方流类型,可选值:ZEGO、AGORA、TRTC
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"
}
-
请求签名:
参数规范
- 请求 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 | 三方流类型,可选值:ZEGO、AGORA、TRTC |
| 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" } -
请求签名: