Information Submission Interface Specification
Update:
Parameter specification
- Request URL:
https://vsafe.ilivedata.com/api/v1/livevideo/check/submit
- Interface description:
Submit the information related to live video streaming to the interface. After the submission, screenshots of the video
will be detected, and the detection results need to be obtained by calling the Result Obtaining Interface.
- Supported formats:
Streaming protocols supported by the detection interface are as follows: rtp, srtp, rtmp, rtmps, mmsh, mmst, hls, http,
tcp, https, etc. The API also supports room or channel integration through ZEGO, Agora RTC, and Tencent Cloud TRTC.
- HTTP Request Header:
Header
Value
Description
Content-Type
application/json;charset=UTF-8
Request body type
Accept
application/json;charset=UTF-8
Accepted return type
X-AppId
The only identifier of the project or application
X-TimeStamp
The UTC timestamp of the request. Timestamps need to be formatted according to W3C standards, for example: 2010-01-31T23:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime)
Authorization
Signature authentication
-
Request method:POST
-
Request body JSON object:
Parameter
Required
Type
Description
video
Conditional
String
Required for URL-based live streams. Omit this field for third-party RTC integration
strategyId
Optional
String
Strategy number, use DEFAULT if no this param in request
frequency
Optional
Number
Default frame extraction setting, there will be one frame captured and detected every 5 seconds, the settable range is 1~60 seconds
segmentSeconds
Optional
Number
The value of ‘segmentSeconds’ defaults to be equal to ‘frequency’, with the requirement that segmentSeconds is an integer multiple of frequency, and the settable range is 1~60 seconds
lang
Optional
String
Default auto. For a list of supported languages, please refer to the Audio Audit Documentation
userId
Optional
String
Unique end user ID. The user ID should be no more than 32 characters.
userIP
Optional
String
User IP address
did
Optional
String
User device ID
dtype
Optional
String
User device type:1:iPhone 2:android 3: ipad 4:wphone 5: pc 6:web 7:wap
callbackRegion
Optional
String
callback region:default use cn server to do callback,supports : cn,us,ap
callbackUrl
Optional
String
callback url:http
callbackSecretKey
Optional
String
callback secret key, customizable. but is necessary be consistent in your callback signature
extra
Optional
json
Extended fields, multiple keys and values can be passed through. For example, the two parameters of the game server and the game version, the input method:"extra":{"server": "123","version":"456"}
data
Conditional
json
Required for third-party RTC streams. Specifies the provider and its room, channel, and authentication parameters
data parameters:
Third-party RTC streams use the submission API on this page. Omit the top-level video field and set streamType and
the matching provider parameters inside data. The server uses data.streamType to select the RTC provider.
Provider
data.streamType
Parameter object
ZEGO
ZEGO
data.zegoParam
Agora RTC
AGORA
data.agoraParam
Tencent Cloud RTC/TRTC
TRTC
data.trtcParam
data parameters:
Parameter
Required
Type
Description
streamType
Required
String
Third-party stream type: ZEGO, AGORA, or TRTC
zegoParam
Conditional
json
Required when streamType=ZEGO
agoraParam
Conditional
json
Required when streamType=AGORA
trtcParam
Conditional
json
Required when streamType=TRTC
Common parameters such as strategyId, lang, frequency, segmentSeconds, callbackUrl, callbackSecretKey, and
extra follow the parameter specification on this page. frequency must be between 1 and 60 seconds. segmentSeconds
must be between 1 and 60 seconds and must be an integer multiple of frequency.
1. ZEGO integration
data.zegoParam parameters:
Parameter
Required
Type
Description
accessToken
Optional
String
ZEGO room authentication token. Omit it when authentication is disabled
roomId
Required
String
ZEGO room ID
streamId
Optional
String
Stream ID to moderate. If omitted, the service discovers streams in the room
userId
Optional
String
User ID used by the moderation service to join the room
idleTimeMillis
Optional
Number
Maximum time to wait when no stream is available in the room, in milliseconds
Request body example:
{
"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. Agora RTC integration
data.agoraParam parameters:
Parameter
Required
Type
Description
appId
Required
String
Agora project App ID
accessToken
Optional
String
Agora RTC token. Omit it when App Certificate is disabled
channelId
Required
String
Agora channel name
userId
Required
String
User ID used by the moderation service to join the channel
streamId
Optional
String
Stream ID to moderate. If omitted, the service discovers streams in the channel
idleTimeMillis
Optional
Number
Maximum time to wait when no stream is available in the channel, in milliseconds
Request body example:
{
"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. Tencent Cloud RTC/TRTC integration
data.trtcParam parameters:
Parameter
Required
Type
Description
sdkAppId
Required
String
Tencent Cloud RTC/TRTC application ID
userSig
Required
String
UserSig used to join the room
strRoomId
Required
String
String room ID
uid
Required
String
User ID used by the moderation service to join the room
streamId
Optional
String
Stream ID to moderate. If omitted, the service discovers streams in the room
idleTimeMillis
Optional
Number
Maximum time to wait when no stream is available in the room, in milliseconds
Request body example:
{
"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 tokens, UserSig values, and callback secret keys are sensitive. Generate and transmit them from
your server, and never store them in client code, logs, or public repositories. Ensure that the token or UserSig remains
valid while the moderation service joins the room and pulls its streams.
-
URL-based live stream request body example:
{
"video":"http://xxx.xxx.com/xxxx",
"userId": "testUser"
}
-
Request signature:
Parameter specification
- Request URL:
https://vsafe.ilivedata.com/api/v1/livevideo/check/submit
- Interface description:
Submit the information related to live video streaming to the interface. After the submission, screenshots of the video will be detected, and the detection results need to be obtained by calling the Result Obtaining Interface.
- Supported formats:
Streaming protocols supported by the detection interface are as follows: rtp, srtp, rtmp, rtmps, mmsh, mmst, hls, http, tcp, https, etc. The API also supports room or channel integration through ZEGO, Agora RTC, and Tencent Cloud TRTC.
- HTTP Request Header:
| Header | Value | Description |
|---|---|---|
| Content-Type | application/json;charset=UTF-8 | Request body type |
| Accept | application/json;charset=UTF-8 | Accepted return type |
| X-AppId | The only identifier of the project or application | |
| X-TimeStamp | The UTC timestamp of the request. Timestamps need to be formatted according to W3C standards, for example: 2010-01-31T23:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime) | |
| Authorization | Signature authentication |
-
Request method:POST
-
Request body JSON object:
| Parameter | Required | Type | Description |
|---|---|---|---|
| video | Conditional | String | Required for URL-based live streams. Omit this field for third-party RTC integration |
| strategyId | Optional | String | Strategy number, use DEFAULT if no this param in request |
| frequency | Optional | Number | Default frame extraction setting, there will be one frame captured and detected every 5 seconds, the settable range is 1~60 seconds |
| segmentSeconds | Optional | Number | The value of ‘segmentSeconds’ defaults to be equal to ‘frequency’, with the requirement that segmentSeconds is an integer multiple of frequency, and the settable range is 1~60 seconds |
| lang | Optional | String | Default auto. For a list of supported languages, please refer to the Audio Audit Documentation |
| userId | Optional | String | Unique end user ID. The user ID should be no more than 32 characters. |
| userIP | Optional | String | User IP address |
| did | Optional | String | User device ID |
| dtype | Optional | String | User device type:1:iPhone 2:android 3: ipad 4:wphone 5: pc 6:web 7:wap |
| callbackRegion | Optional | String | callback region:default use cn server to do callback,supports : cn,us,ap |
| callbackUrl | Optional | String | callback url:http |
| callbackSecretKey | Optional | String | callback secret key, customizable. but is necessary be consistent in your callback signature |
| extra | Optional | json | Extended fields, multiple keys and values can be passed through. For example, the two parameters of the game server and the game version, the input method:"extra":{"server": "123","version":"456"} |
| data | Conditional | json | Required for third-party RTC streams. Specifies the provider and its room, channel, and authentication parameters |
dataparameters:
Third-party RTC streams use the submission API on this page. Omit the top-level video field and set streamType and
the matching provider parameters inside data. The server uses data.streamType to select the RTC provider.
| Provider | data.streamType |
Parameter object |
|---|---|---|
| ZEGO | ZEGO |
data.zegoParam |
| Agora RTC | AGORA |
data.agoraParam |
| Tencent Cloud RTC/TRTC | TRTC |
data.trtcParam |
data parameters:
| Parameter | Required | Type | Description |
|---|---|---|---|
| streamType | Required | String | Third-party stream type: ZEGO, AGORA, or TRTC |
| zegoParam | Conditional | json | Required when streamType=ZEGO |
| agoraParam | Conditional | json | Required when streamType=AGORA |
| trtcParam | Conditional | json | Required when streamType=TRTC |
Common parameters such as strategyId, lang, frequency, segmentSeconds, callbackUrl, callbackSecretKey, and
extra follow the parameter specification on this page. frequency must be between 1 and 60 seconds. segmentSeconds
must be between 1 and 60 seconds and must be an integer multiple of frequency.
1. ZEGO integration
data.zegoParam parameters:
| Parameter | Required | Type | Description |
|---|---|---|---|
| accessToken | Optional | String | ZEGO room authentication token. Omit it when authentication is disabled |
| roomId | Required | String | ZEGO room ID |
| streamId | Optional | String | Stream ID to moderate. If omitted, the service discovers streams in the room |
| userId | Optional | String | User ID used by the moderation service to join the room |
| idleTimeMillis | Optional | Number | Maximum time to wait when no stream is available in the room, in milliseconds |
Request body example:
{
"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. Agora RTC integration
data.agoraParam parameters:
| Parameter | Required | Type | Description |
|---|---|---|---|
| appId | Required | String | Agora project App ID |
| accessToken | Optional | String | Agora RTC token. Omit it when App Certificate is disabled |
| channelId | Required | String | Agora channel name |
| userId | Required | String | User ID used by the moderation service to join the channel |
| streamId | Optional | String | Stream ID to moderate. If omitted, the service discovers streams in the channel |
| idleTimeMillis | Optional | Number | Maximum time to wait when no stream is available in the channel, in milliseconds |
Request body example:
{
"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. Tencent Cloud RTC/TRTC integration
data.trtcParam parameters:
| Parameter | Required | Type | Description |
|---|---|---|---|
| sdkAppId | Required | String | Tencent Cloud RTC/TRTC application ID |
| userSig | Required | String | UserSig used to join the room |
| strRoomId | Required | String | String room ID |
| uid | Required | String | User ID used by the moderation service to join the room |
| streamId | Optional | String | Stream ID to moderate. If omitted, the service discovers streams in the room |
| idleTimeMillis | Optional | Number | Maximum time to wait when no stream is available in the room, in milliseconds |
Request body example:
{
"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 tokens, UserSig values, and callback secret keys are sensitive. Generate and transmit them from your server, and never store them in client code, logs, or public repositories. Ensure that the token or UserSig remains valid while the moderation service joins the room and pulls its streams.
-
URL-based live stream request body example:
{ "video":"http://xxx.xxx.com/xxxx", "userId": "testUser" } -
Request signature: