Result Obtaining Interface Specification
Update:
Request specification
- Request URL:
Get it from the Console - Service Configuration
- Interface description:
The interface is used to obtain the results of video detection which include screenshot evidence, prohibited content and its classification.
- 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
UTC Timestamp of the request, which needs to be normalized in accordance with W3C standards, for example: 2010-01-31T23:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime)
Authorization
Signature value
-
Request method:POST
-
Request body JSON object:
Parameter
Necessity
Type
Description
taskId
Required
String
The taskId to which we return after calling successfully the video submission interface.
-
Example of request body:
JSON response
{
"taskId": "f67fee0890de4c118d4f672b7c8ee304"
}
-
Request signature:
When the user requests the Video result API, the request can be signed with the appId and secretKey (obtained from the “Console - Service Configuration”). When the API receives the request with signature information, it will verify the signature using the same algorithm, and if the signature is found to be inconsistent, the API will return 401 error to the user.
If the API validation signature is consistent and the user corresponding to the appId has permission to operate the requested resource, the request succeeds, otherwise the API will return 401 error.
- Send signatures via HTTP Request Headers
Method: Add a header named Authorization in the request, whose value is the signature value. For example:
Authorization: Njl86M/jY6zZaZoGhZdGO+GI/8+yGFECusGH1yQHUFE=
- Signature calculation method
- Canonicalized Query String
Convert the request body JSON string to a hexadecimal string (not Base64) by doing sha256 encoding with UTF-8 character encoding.
CanonicalizedQueryString = hex(sha256(jsonBody))
-
Constructs the signed string StringToSign ("\n" stands for ASCII newline character):
StringToSign = HTTPMethod + “\n” +
HostHeaderInLowercase + “\n” +
HTTPRequestURI + “\n” +
CanonicalizedQueryString + “\n” +
“X-AppId:” + SAME_APPID_IN_HEADER + “\n” +
“X-TimeStamp:” + SAME_TIMESTAMP_IN_HEADER
The HTTPRequestURI is the absolute path to the request URI, without the request string. If the HTTPRequestURI is empty, also keep a forward slash (/)
The hash-based message authentication code (HMAC) is created using the HMAC-SHA256 protocol and the signature is calculated.
-
The hash-based message authentication code (HMAC) is created using the HMAC-SHA256 protocol and the signature is calculated.
For more information about HMAC, see: https://tools.ietf.org/html/rfc2104。
-
Converting the results of the previous step to a BASE64 string
-
Put the BASE64 string into the Authorization of HTTP request Header
- Example of signature
Below is an example of appId & secretKey & taskId.
appId=1000
secrectKey=d9e23d93053f49ade2f8fce185acedd4
taskId=f67fee0890de4c118d4f672b7c8ee304
Below is an example of request body.
{
"taskId": "f67fee0890de4c118d4f672b7c8ee304"
}
Generate CanonicalizedQueryString
b3ad8e9d16439ccd5e91924d2516bf9592975003f69beff44e56cddf47bd3118
Generate StringToSign
POST
asafe.ilivedata.com
/api/v1/audio/check/result
b3ad8e9d16439ccd5e91924d2516bf9592975003f69beff44e56cddf47bd3118
X-AppId:1000
X-TimeStamp:2020-07-31T07:59:03Z
Signatures from HMAC calculations
H0ZXsKUaiRotpxSiXW6+RgKRwnxHXy3qwlVzavs9iHo=
HTTP Response
Content-Type: application/json;charset=UTF-8
The result is in JSON format, please refer to the following example.
- HTTP response
Description of returning json field:
Field name
Type
Description
errorCode
Number
Error code: 0 means success
errorMessage
String
Error message
code
Number
status code:0:successful,1:failed,2:checking,3:taskId Invalid
taskId
String
TaskId when requested
result
Number
0:pass,1:suggested review,2:sensitive
audioSpams
json数组
result info
language
String
language detect
audioSpams:
Field name
Type
Description
startTime
Number
The start time of the hit audio segment, in seconds
endTime
Number
The end time of the hit audio segment, in seconds
text
String
text for audio
vpr
Boolean
vpr hit
score
double
vpr score
tags
json array
Classified information
tags:
Field name
Type
Description
tag
Number
Classified information:
100: politics, 110: violence, 120: prohibited, 130: eroticism, 150: advertisement, 160: insults,
170: Hate speech, 180: Minor protection, 190: sensitive hot spots,
220:private transaction, 510:minority languages, 900: other, 999: customization
tagName
String
Detect first-level type names
tagNameEn
String
Detect first-level type names (English)
level
json object
Classification level, 0: normal, 1: suspected, 2: abnormal
subTags
json array
details
subTags:
Field name
Type
Description
subTag
Number
Secondary classification information reference Classification Code
subTagName
String
Detect secondary type names
subTagNameEn
String
Detect secondary type names (English)
wordList
array of strings
hit details
-
Example of response:
JSON response
{
"errorCode": 0,
"code": 0,
"result": 2,
"taskId": "nx_10e04ba8-367d-462e-b7a0-437a12acbba1_1616666938669",
"audioSpams": [{
"startTime":18.0,
"endTime":20.0,
"text": "fuck you",
"tags": [{
"tag": 100,
"level": 2,
"subTags": [{
"subTag": 130001,
"wordList": [
"fuck"
]
}]
}]
}],
"language":"zh-CN"
}
Error code
Http Status code
Error code
Error message
200
0
This field is omitted
405
1004
Method Not Allowed
411
1007
Not Content Length
400
1002
API Not Found
400
1003
Bad Request
401
1102
Unauthorized Client
401
1106
Missing Access Token
401
1107
Invalid Token
401
1108
Expired Token
401
1110
Invalid Client
200
1200
Downloads failed or base64 value invalid
401
2000
Missing Parameter
401
2001
Invalid Parameter
Request specification
- Request URL:
Get it from the Console - Service Configuration
- Interface description:
The interface is used to obtain the results of video detection which include screenshot evidence, prohibited content and its classification.
- 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 | UTC Timestamp of the request, which needs to be normalized in accordance with W3C standards, for example: 2010-01-31T23:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime) | |
Authorization | Signature value |
-
Request method:POST
-
Request body JSON object:
Parameter | Necessity | Type | Description |
---|---|---|---|
taskId | Required | String | The taskId to which we return after calling successfully the video submission interface. |
-
Example of request body:
JSON response
{ "taskId": "f67fee0890de4c118d4f672b7c8ee304" }
-
Request signature:
When the user requests the Video result API, the request can be signed with the appId and secretKey (obtained from the “Console - Service Configuration”). When the API receives the request with signature information, it will verify the signature using the same algorithm, and if the signature is found to be inconsistent, the API will return 401 error to the user.
If the API validation signature is consistent and the user corresponding to the appId has permission to operate the requested resource, the request succeeds, otherwise the API will return 401 error.
- Send signatures via HTTP Request Headers
Method: Add a header named Authorization in the request, whose value is the signature value. For example:
Authorization: Njl86M/jY6zZaZoGhZdGO+GI/8+yGFECusGH1yQHUFE=
- Signature calculation method
- Canonicalized Query String
Convert the request body JSON string to a hexadecimal string (not Base64) by doing sha256 encoding with UTF-8 character encoding.
CanonicalizedQueryString = hex(sha256(jsonBody))
-
Constructs the signed string StringToSign ("\n" stands for ASCII newline character):
StringToSign = HTTPMethod + “\n” + HostHeaderInLowercase + “\n” + HTTPRequestURI + “\n” + CanonicalizedQueryString
+ “\n” + “X-AppId:” + SAME_APPID_IN_HEADER + “\n” + “X-TimeStamp:” + SAME_TIMESTAMP_IN_HEADER
The HTTPRequestURI is the absolute path to the request URI, without the request string. If the HTTPRequestURI is empty, also keep a forward slash (/)
The hash-based message authentication code (HMAC) is created using the HMAC-SHA256 protocol and the signature is calculated.
-
The hash-based message authentication code (HMAC) is created using the HMAC-SHA256 protocol and the signature is calculated.
For more information about HMAC, see: https://tools.ietf.org/html/rfc2104。
-
Converting the results of the previous step to a BASE64 string
-
Put the BASE64 string into the Authorization of HTTP request Header
- Example of signature
Below is an example of appId & secretKey & taskId.
appId=1000
secrectKey=d9e23d93053f49ade2f8fce185acedd4
taskId=f67fee0890de4c118d4f672b7c8ee304
Below is an example of request body.
{
"taskId": "f67fee0890de4c118d4f672b7c8ee304"
}
Generate CanonicalizedQueryString
b3ad8e9d16439ccd5e91924d2516bf9592975003f69beff44e56cddf47bd3118
Generate StringToSign
POST
asafe.ilivedata.com
/api/v1/audio/check/result
b3ad8e9d16439ccd5e91924d2516bf9592975003f69beff44e56cddf47bd3118
X-AppId:1000
X-TimeStamp:2020-07-31T07:59:03Z
Signatures from HMAC calculations
H0ZXsKUaiRotpxSiXW6+RgKRwnxHXy3qwlVzavs9iHo=
HTTP Response
Content-Type: application/json;charset=UTF-8
The result is in JSON format, please refer to the following example.
- HTTP response
Description of returning json field:
Field name | Type | Description |
---|---|---|
errorCode | Number | Error code: 0 means success |
errorMessage | String | Error message |
code | Number | status code:0:successful,1:failed,2:checking,3:taskId Invalid |
taskId | String | TaskId when requested |
result | Number | 0:pass,1:suggested review,2:sensitive |
audioSpams | json数组 | result info |
language | String | language detect |
audioSpams:
Field name | Type | Description |
---|---|---|
startTime | Number | The start time of the hit audio segment, in seconds |
endTime | Number | The end time of the hit audio segment, in seconds |
text | String | text for audio |
vpr | Boolean | vpr hit |
score | double | vpr score |
tags | json array | Classified information |
tags:
Field name | Type | Description |
---|---|---|
tag | Number | Classified information: 100: politics, 110: violence, 120: prohibited, 130: eroticism, 150: advertisement, 160: insults, 170: Hate speech, 180: Minor protection, 190: sensitive hot spots, 220:private transaction, 510:minority languages, 900: other, 999: customization |
tagName | String | Detect first-level type names |
tagNameEn | String | Detect first-level type names (English) |
level | json object | Classification level, 0: normal, 1: suspected, 2: abnormal |
subTags | json array | details |
subTags:
Field name | Type | Description |
---|---|---|
subTag | Number | Secondary classification information reference Classification Code |
subTagName | String | Detect secondary type names |
subTagNameEn | String | Detect secondary type names (English) |
wordList | array of strings | hit details |
-
Example of response:
JSON response
{ "errorCode": 0, "code": 0, "result": 2, "taskId": "nx_10e04ba8-367d-462e-b7a0-437a12acbba1_1616666938669", "audioSpams": [{ "startTime":18.0, "endTime":20.0, "text": "fuck you", "tags": [{ "tag": 100, "level": 2, "subTags": [{ "subTag": 130001, "wordList": [ "fuck" ] }] }] }], "language":"zh-CN" }
Error code
Http Status code | Error code | Error message |
---|---|---|
200 | 0 | This field is omitted |
405 | 1004 | Method Not Allowed |
411 | 1007 | Not Content Length |
400 | 1002 | API Not Found |
400 | 1003 | Bad Request |
401 | 1102 | Unauthorized Client |
401 | 1106 | Missing Access Token |
401 | 1107 | Invalid Token |
401 | 1108 | Expired Token |
401 | 1110 | Invalid Client |
200 | 1200 | Downloads failed or base64 value invalid |
401 | 2000 | Missing Parameter |
401 | 2001 | Invalid Parameter |