# 视频内容异步检测接口

开始使用前,请先创建应用,申请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编码的传输数据,以及表单参数checksumcontent
seed 字符串 该值用于回调通知请求中的签名。当使用callback时,该字段必须提供。
client_appkey 字符串 上层业务调用对应的appkey
client_name 字符串 上层调用业务线名称

# API请求示例

# 返回参数

名称 类型 是否必须 描述
code 字符串 请求成功为0,否则为error code
message 字符串 请求成功为success,否则为错误描述信息
dataId 字符串 检测对象对应的数据ID
taskId 字符串 本次检测任务的ID
url 字符串 提交检测的视频url地址

# 返回结果示例

# 结果回调通知

内容安全按照下表描述的生成规则和格式设置checksumcontent,调用您的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

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

# 下一步操作

依据 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 账号未授权、账号欠费、账号未开通、账号被禁等。
  • 在线客服

  • 意见反馈