# 视频内容异步检测接口
开始使用前,请先创建应用,申请UGC内容安全审核,并成功完成审批。
本文提供了调用视频异步检测任务进行视频审核的具体接口和参数说明。
注意
待检测视频需要满足以下要求:
- 视频链接支持以下协议:HTTP和HTTPS。
- 视频文件支持以下格式:AVI、FLV、MP4、MPG、ASF、WMV、MOV、WMA、RMVB、RM、FLASH、TS。
- 视频大小限制:单个视频大小不超过200MB。
- 视频检测的时间依赖于视频的下载时间。请保证被检测的视频文件所在的存储服务稳定可靠。
# 请求
POST https://apigate.glodon.com/ugc/api/v1/asyncscan/video
1
# header参数
参数名 | 必选 | 类型 | 描述 |
---|---|---|---|
Authorization | 是 | 字符串 | Bearer app_access_token. 注:该 access_token 是应用级别 |
Content-Type | 是 | 字符串 | application/json |
# body参数
参数名 | 必选 | 参数类型 | 参数含义 |
---|---|---|---|
url | 是 | 字符串 | 需检测视频url地址 |
callback | 是 | 字符串 | 异步检测结果回调通知您的URL,支持HTTP、HTTPS。callback接口必须支持POST方法、UTF-8编码的传输数据,以及表单参数checksum和content。 |
seed | 是 | 字符串 | 该值用于回调通知请求中的签名。当使用callback时,该字段必须提供。 |
client_appkey | 否 | 字符串 | 上层业务调用对应的appkey |
client_name | 否 | 字符串 | 上层调用业务线名称 |
# API请求示例
# 返回参数
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
code | 字符串 | 是 | 请求成功为0,否则为error code |
message | 字符串 | 是 | 请求成功为success,否则为错误描述信息 |
dataId | 字符串 | 否 | 检测对象对应的数据ID |
taskId | 字符串 | 是 | 本次检测任务的ID |
url | 字符串 | 是 | 提交检测的视频url地址 |
# 返回结果示例
# 结果回调通知
内容安全按照下表描述的生成规则和格式设置checksum和content,调用您的callback接口返回检测结果。
注意
您的服务端callback接口收到内容安全推送的结果后,如果返回的HTTP状态码为200,则表示接收成功,其他的HTTP状态码均视为接收失败。接收失败时,内容安全将最多重复推送16次检测结果,直到接收成功。重复推送16次后仍未接收成功,则不再推送,建议您检查callback接口的状态。
名称 | 类型 | 描述 |
---|---|---|
checksum | 字符串 | 由appkey(aecore生成的应用appkey) + seed +content 拼成字符串,通过SHA256算法生成。为防篡改,您可以在获取到推送结果时,按上述算法生成字符串,与checksum做一次校验。 |
content | 字符串 | JSON字符串格式,请自行解析反转成JSON对象。content结果的示例如下。 |
# 回调返回参数
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
code | 整型 | 是 | 请求成功为200,否则为error code |
globalSuggestion | 字符串 | 是 | 本次检测结果,取值: pass:文本正常,可以直接放行 review:文本需要进一步人工审核(只要有一个suggestion为review,即为review) block:文本违规,可以直接删除或者限制公开(只要有一个suggestion为block,即为block) |
dataId | 字符串 | 否 | 检测对象对应的数据ID |
msg | 字符串 | 是 | 错误描述信息 |
url | 字符串 | 是 | 提交的视频url地址 |
taskId | 字符串 | 是 | 本次检测任务的ID |
scene | 字符串 | 是 | 默认同时检测以下场景,取值: porn:色情 terrorism:暴恐 |
suggestion | 字符串 | 是 | 每个scene的检测结果,可作为规则调整优化的参考,取值: pass:文本正常,可以直接放行 review:文本需要进一步人工审核 block:文本违规,可以直接删除或者限制公开 |
label | 字符串 | 是 | 文本垃圾检测结果的分类,取值: normal:正常文本 spam:含垃圾信息 ad:广告 politics:涉政 terrorism:暴恐 abuse:辱骂 porn:色情 flood:灌水 contraband:违禁 meaningless:无意义 |
rate | 浮点数 | 是 | 结果属于当前分类的概率,取值范围:0.00-100.00,值越高,表示越有可能属于当前分类,文本检测rate值为非线性的,不做结果判断参考 |
回调结果获取示例:
@RestController
public class demo {
@PostMapping(value = "/test")
public String test(@RequestParam("checksum")String checksum,
@RequestParam("content")String content){
String appkey = "mIi7XXXXXXXXXXXXXXXXXXXXXXXXXHU6e"; //aecore上生成的应用appkey
String seed = "SignSeedDemo"; //同视频内容异步检测接口请求参数中 seed 值
String result = getSHA256Str(appkey + seed + content);
if(result.equals(checksum)){
System.out.println("签名正确");
} else
System.out.println("签名异常");
return "demo";
}
public static String getSHA256Str(String str){
MessageDigest messageDigest;
String encdeStr = "";
try {
messageDigest = MessageDigest.getInstance("SHA-256");
byte[] hash = messageDigest.digest(str.getBytes("UTF-8"));
encdeStr = Hex.encodeHexString(hash);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return encdeStr;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
checksum结果示例
087d4092bcef114c5c0eeaea3f12bdb62f91f7497daf1a984a06f384332b248e
1
content结果示例
[{
"msg":"OK",
"code":200,
"globalSuggestion":"pass",
"dataId":"cb18348e-da3f-4e5d-87c7-bd81b20653f2",
"results":[{"rate":99.9,"suggestion":"pass","label":"normal","scene":"porn"},
{"rate":99.9,"suggestion":"pass","label":"normal","scene":"terrorism"}],
"taskId":"vi5a4@yJ7hX5T75$1YPlUsPe-1tkixt",
"url":"http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"}
]}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 下一步操作
依据 globalSuggestion 对检测对象进行放行、二次审核或直接删除。根据label参数的返回值判断风险的具体类型。
# 附:错误码说明
code | msg | description |
---|---|---|
0 | success | 请求成功 |
OK | 回调返回成功 | |
280 | PROCESSING | 任务正在执行中,建议您等待一段时间(例如5s)后再查询结果。 |
400 | BAD_REQUEST | 请求参数不正确,请仔细检查请求参数。 |
401 | NOT_ALLOWED | 图片、视频、语音链接地址不安全。 |
403 | FORBIDDEN | 图片、视频、语音链接无法访问,请确认公网是否可访问,并且无防盗链策略。 |
404 | NOT_FOUND | 待检测内容未找到,图片、视频、语音内容无法下载导致,请确认内容可通过公网访问到。 |
480 | DOWNLOAD_FAILED | 下载失败,请确认待检测内容的大小、分辨率(如果有)在API的限制范围内。 |
500 | GENERAL_ERROR | 服务端临时出错,请重试。 |
580 | DB_FAILED | 数据库操作失败,请重试。 |
581 | TIMEOUT | 超时,请重试。 |
585 | CACHE_FAILED | 缓存出错,请重试。 |
586 | ALGO_FAILED | 算法出错。 |
587 | MQ_FAILED | 中间件出错。 |
588 | EXCEED_QUOTA | 请求频率超出配额。 |
589 | TOO_LARGE | 待检测内容过大,请确保检测的内容在API的限制范围内,请重试。 |
590 | BAD_FORMAT | 待检测内容格式错误,请确保检测的内容在API的限制范围内。 |
591 | CONNECTION_POOL_FULL | 连接池满。 |
592 | DOWNLOAD_TIMEOUT | 下载超时,下载时间限制为3s,请确保检测的内容大小在API的限制范围内。 |
594 | EXPIRED | 任务过期,如taskId过期。 |
595 | CATCH_FRAME_FAILED | 截帧失败。 |
596 | PERMISSION_DENY | 账号未授权、账号欠费、账号未开通、账号被禁等。 |
← 图片违规内容检测接口 申诉接口 →