全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网

视频智能鉴黄API

更新时间:2017-11-16 17:34:53

功能描述

对短视频进行色情识别

HTTP接口描述

公共描述

1.1 场景(scene)和分类(label)

视频鉴黄检测有不同的场景(scene),每个场景scene)对应不同的分类(label)。对应关系如下:

场景(scene)中文名 场景(scene) 分类(label) 备注
视频鉴黄检测 porn normal 正常视频
视频鉴黄检测 porn porn 色情视频

1.2 视频接口-递交视频检测任务接口 (uri: /green/video/asyncscan)

异步检测视频是否为违规内容。请求body是一个JSON对象,字段说明如下:

字段 类型 是否必须 说明
bizType 字符串 可选 业务类型,调用方从云盾内容安全申请所得。每个bizType对应不同的算法/模型。根据配置,后端可根据该字段对请求做不同处理。属于高级用法
scenes 字符串数组 必须 字符串数组,场景定义参考1.1小节;最终执行的算法为该列表里的算法和该用户在后端配置允许的算法的交集
callback 字符串 可选 异步检测结果回调通知用户url;支持http/https。当该字段为空时,用户必须定时检索检测结果
seed 字符串 可选 该值会用户回调通知请求中签名;当含有callback时,该字段为必须。
tasks JSON数组 必选 JSON数组中的每个元素是一个结构体,参见下面Video表

Video表:

字段 类型 是否必须 说明
clientInfo JSON结构体 可选 客户端信息,参考[调用方式/公共请求参数/公共查询参数]小节中ClientInfo结构体描述。服务器会把[调用方式/公共请求参数/公共查询参数]小节中全局的clientInfo和这里的独立的clientInfo合并。独立的clientInfo优先级更高。
dataId 字符串 可选 调用者通常保证一次请求中,所有的dataId不重复
frames JSON数组 必选 截帧信息。frames里的每个元素是个结构体,参考Frame表
framePrefix 字符串 可选 当frames存在时,framePrefix + frame.url 为截帧完整url。
time 整型 可选 内容创建/编辑时间
length 整型 可选 视频长度,单位秒

Frame表

字段 类型 是否必须 说明
url 字符串 可选 截帧地址。当framePrefix存在时,完整截帧地址为:framePrefix + url
offset 整型 可选 该截帧距离片头的时间戳,单位为秒

请求body例子:

  1. {
  2. "scenes":["porn"],
  3. "tasks":[
  4. {
  5. "dataId":"videoId xxx",
  6. "time":1475556078881, // 视频创建时间,单位毫秒
  7. "frames":[
  8. {
  9. "offset":10,
  10. "url":"http://g1.ykimg.com/0B860000586C0A0300038A0460000"
  11. },
  12. {
  13. "offset":20,
  14. "url":"http://g1.ykimg.com/0B860000586C0A0300038A0460001"
  15. },
  16. {
  17. "offset":30,
  18. "url":"http://g1.ykimg.com/0B860000586C0A0300038A0460002"
  19. },
  20. {
  21. "offset":40,
  22. "url":"http://g1.ykimg.com/0B860000586C0A0300038A0460003"
  23. },
  24. {
  25. "offset":50,
  26. "url":"http://g1.ykimg.com/0B860000586C0A0300038A0460003"
  27. },
  28. {
  29. "offset":60,
  30. "url":"http://g1.ykimg.com/0B860000586C0A0300038A046000x"
  31. }
  32. ]
  33. }
  34. ]
  35. }

返回例子:

  1. {
  2. "code":200,
  3. "msg":"OK",
  4. "requestId":"requestID xxx",
  5. "data":[
  6. {
  7. "dataId":"videoId xxx",
  8. "taskId":"taskId xxx"
  9. }
  10. ]
  11. }

返回body中的Data字段是JSON数组,每一个元素有如下字段:

字段 类型 是否必须 说明
taskId 字符串 必须 绿网服务器返回的唯一标识该检测任务的ID
dataId 字符串 可选 对应的请求中的dataId

结果回调通知参数callback、seed使用说明:

如果设置了回调通知参数callback,被回调callback值,即一个http(s)协议接口的url, 需支持post方法, 传输数据编码采用utf-8,并且支持两个表单参数checksum和content, 系统将按以下描述的生成规则和格式设置checksum和content的值,调用您的callback接口返回检测内容。

约定:您服务端接收到我们推送的结果后,返回的http状态码为200时,我们视为推送成功,其他的http状态码均视为您接收失败,我们将进行最多16次推送的重试。

回调结果参数的生成规则和格式:

属性 值类型 说明
checksum String 由用户uid + seed + content拼成字符串,通过sha256算法生产. 为防篡改,您可(非必须)在获取到推送结果时按此算法生成字符串,与checksum做一次校验
content String JSON字符串格式, 请自行解析反转成json对象, content结果格式如下所述

注: 用户uid(账号ID),请在阿里云控制台上查询:https://account.console.aliyun.com/#/secure

content结果格式:

  1. {
  2. "code":200,
  3. "msg":"OK",
  4. "dataId":"videoId xxx",
  5. "taskId":"taskId xxx",
  6. "results":[
  7. {
  8. "label":"porn",
  9. "rate":99.2,
  10. "scene":"porn",
  11. "suggestion":"block"
  12. }
  13. ]
  14. }

1.3 视频接口-视频异步检测结果查询接口 (uri: /green/video/results)

客户端定时轮询查询异步检测结果; 建议查询间隔为30秒,最长不能超过4个小时,否则结果将会消失。请求body是一个JSON数组,字段说明如下:

字段 类型 是否必须 说明
body JSON数组 必须 要查询的taskId列表。最大长度不超过100.

返回body中的Data字段是JSON数组,每一个元素有如下字段:

字段 类型 是否必须 说明
code 整型 必须 错误码,和http的status code一致
msg 字符串 必须 错误描述信息
dataId 字符串 可选 对应的请求中的dataId
taskId 字符串 必须 绿网服务器返回的唯一标识该检测任务的ID
results 数组 可选 当成功时(code == 200),该结果的包含一个或多个元素。每个元素是个结构体。参见下表。

上表results中包含的元素说明:

字段 类型 是否必须 说明
scene 字符串 必须 风险场景,和传递进来的场景对应
suggestion 字符串 必须 建议用户处理,取值范围:[“pass”, “review”, “block”]
label 字符串 必须 该文本的分类,取值范围参考1.1小节
rate 浮点数 必须 结果为该分类的概率;值越高,越趋于该分类;取值为[0.00-100.00]
frames JSON数组 可选 判断为该分类的一些截帧检测结果。参考截帧检测结果表FrameScanResult
extras JSON对象 可选 附加信息

截帧检测结果表FrameScanResult:

字段 类型 是否必须 说明
url 字符串 可选 截帧地址
offset 整型 可选 该截帧距离片头的时间戳,单位为秒
rate 浮点数 必须 结果为该分类的概率;值越高,越趋于该分类;取值为[0.00-100.00]

请求body例子:

  1. [
  2. "taskId xxx",
  3. "taskId bbb"
  4. ]

响应例子:

  1. {
  2. "code":200,
  3. "msg":"OK",
  4. "requestId":"requestID xxx",
  5. "data":[
  6. {
  7. "code":200,
  8. "msg":"OK",
  9. "dataId":"videoId xxx",
  10. "taskId":"taskId xxx",
  11. "results":[
  12. {
  13. "label":"porn",
  14. "rate":99.2,
  15. "scene":"porn",
  16. "suggestion":"block"
  17. }
  18. ]
  19. }
  20. ]
  21. }

1.4 视频接口-视频反馈接口 (uri: /green/video/feedback)

当用户审核发现绿网检测有错时,可以通过该API反馈给绿网。请求body是一个JSON对象,含有如下字段:

字段 类型 是否必须 说明
taskId 字符串 必须 绿网服务器返回的唯一标识该检测任务的ID
dataId 字符串 可选 对应的请求中的dataId
url 字符串 可选 对应的请求中的url,当请求中没有url时,该字段为空
label 字符串 必须 反馈的分类,取值范围参考1.4小节
frames JSON数组 必须 用户认为属于该分类的截帧信息。frames里的每个元素是个结构体,参考Frame表
note 字符串 可选 备注

Frame表

字段 类型 是否必须 说明
url 字符串 可选 截帧地址
offset 整型 可选 该截帧距离片头的时间戳,单位为秒

返回body中的Data字段为空。

请求body例子:

  1. {
  2. "taskId":"taskId xxx",
  3. "dataId":"dataId xxx",
  4. "url":"http://a.b.c/d.mp4",
  5. "label":"porn",
  6. "frames":[
  7. {
  8. "offset":100
  9. },
  10. {
  11. "offset":200
  12. }
  13. ],
  14. "note":"blabla..."
  15. }

返回例子:

  1. {
  2. "code":200,
  3. "msg":"OK",
  4. "requestId":"requestID xxx"
  5. }
本文导读目录