Information Submission Interface Specification

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:

Signature authentication