本文提供了调用视频异步检测任务进行视频标签识别的具体接口和参数说明,旨在帮助您编写程序构建HTTP调用请求。

  • 关于如何构造HTTP请求,请参考请求结构
  • 您也可以直接选用已构造好的HTTP请求,具体请参考SDK参考

提交视频异步检测任务

描述

业务接口/green/video/asyncscan

异步检测视频中包含的标签内容,支持通过传入视频URL、本地视频文件、视频二进制流的方式进行检测。
说明 该接口为收费接口,按照 视频的时长(分钟)× 视频标签识别单价计费,具体请参考计费说明。

异步检测结果需要通过调用查询视频标签识别检测结果接口进行查询或者通过callback的方式进行接收,检测结果最多保留4个小时。

关于视频的限制
  • 视频文件链接支持以下协议:HTTP和HTTPS。
  • 视频文件支持以下格式:.avi、.flv、.mp4、.mpg、.asf、.wmv、.mov、.wma、.rmvb、.rm、.flash、.mid。
  • 视频流支持以下协议:.rtmp、.hls、.http-flv。
  • 视频大小限制:单个视频大小不超过200MB。如您有特殊需求(大视频),可以提工单进行调整。
  • 视频检测的时间依赖于视频的下载时间。请保证被检测的视频文件所在的存储服务稳定可靠,建议您使用阿里云OSS存储服务存储视频文件。

请求参数

关于在请求中必须包含的公共请求参数,请参考公共参数

请求body是一个JSON对象,字段说明如下:

名称 类型 是否必需 描述
bizType 字符串 自定义业务类型,由业务方提供。
每个bizType对应不同的算法/模型,运维人员可以为某一bizType动态地增加、删除要检测的风险场景。通过配置,后端根据该字段对请求做不同处理。
说明 该字段优先级高于 scenes字段。
scenes 字符串数组 指定视频检测的应用场景,可选值包括:tag
callback 字符串 异步检测结果回调通知您的URL,支持HTTP/HTTPS。当该字段为空时,您必须定时检索检测结果。
seed 字符串 该值用于回调通知请求中的签名。当使用callback时,该字段必须提供。
tasks JSON数组 JSON数组中的每个元素是一个结构体(Video表)。每个元素的具体结构描述见task
表 1. task
名称 类型 是否必需 描述
dataId 字符串 数据Id。需要保证在一次请求中所有的Id不重复。
url 字符串 视频URL地址。

结果回调通知参数(callback、seed)

使用说明

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

您服务端接收到我们推送的结果后,返回的HTTP状态码为200时,表示推送成功,其他的HTTP状态码均视为您接收失败,我们将最多重复推送16次。

回调结果参数的生成规则
名称 类型 描述
checksum String 用户uid + seed + content拼成字符串,通过SHA256算法生产。用户UID即账号ID,您可在阿里云控制台上查询。为防篡改,您可以在获取到推送结果时,按此算法生成字符串,与checksum做一次校验。
content String JSON字符串格式,请自行解析反转成JSON对象。content结果格式参见下文。
content结果格式
{
      "code":200,
      "msg":"OK",
      "dataId":"videoId xxx",
      "taskId":"taskId xxx",
      "results":[
        {
          "label":"tag",
          "rate":99.2,
          "scene":"tag",
          "suggestion":"review"
        }
      ]
}

返回参数

返回结果说明,参见返回结果

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

名称 类型 是否必需 描述
taskId 字符串 该检测任务的ID。
dataId 字符串 对应请求的dataId

示例

请求示例
{
  "code":200,
  "msg":"OK",
  "requestId":"requestID xxx",
  "data":[
    {
      "dataId":"videoId xxx",
      "taskId":"taskId xxx"
    }
  ]
}
返回示例
{
  "code":200,
  "msg":"OK",
  "requestId":"requestID xxx",
  "data":[
    {
      "dataId":"videoId xxx",
      "taskId":"taskId xxx"
    }
  ]
}

查询视频异步检测结果

描述

业务接口/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),返回结果中包含一个或多个元素。每个元素是个结构体,具体结构描述见result
表 2. result
名称 类型 是否必需 描述
scene 字符串 视频检测场景,取值:tag
label 字符串 检测结果的分类,取值:
  • normal:正常视频,无标签
  • tag:含标签视频
suggestion 字符串 建议用户执行的操作,取值范围:
  • pass:视频不含标签,无需进行其余操作
  • review:视频包含标签,建议执行进一步操作
rate 浮点数 结果为该分类的概率,取值范围为[0.00-100.00]。值越高,表示越有可能属于该分类。
extras JSON对象 附加信息。
tagData 结构体 标签识别发现标签时(label=tag),返回的标签数据信息。具体结构描述见tagData
表 3. tagData
名称 类型 是否必需 描述
summary 数组 标签概要信息。具体结构见summary
details 数组 标签详细信息。具体结构见detail
表 4. summary
名称 类型 是否必需 描述
tgCnName 字符串 标签中文名。
tgEnName 字符串 标签英文名。
cnCategory 字符串 标签所属的分类中文名称。
enCategory 字符串 标签所属的分类英文名称。
rate 浮点数 结果为标签的概率,取值范围[0,100]。取值越大,则越有可能属于标签。
表 5. detail
名称 类型 是否必需 描述
tgCnName 字符串 标签中文名。
tgEnName 字符串 标签英文名。
tagSegment 数组 该标签出现在视频中的分段时间信息。具体结构见tagSegment
cnCategory 字符串 标签所属的分类中文名称。
enCategory 字符串 标签所属的分类英文名称。
表 6. tagSegment
名称 类型 是否必需 描述
offset 整型 该标签出现在视频中的起始时间位置,单位为秒。
duration 整型 该标签在视频中持续出现的时长,单位为秒。
rate 浮点数 结果为标签的概率,取值范围[0,100]。取值越大,则越有可能属于标签。

示例

请求示例
[
  "taskId xxx",
  "taskId bbb"
]
返回示例
{
  "msg": "OK",
  "code": 200,
  "data": [{
    "msg": "OK",
    "code": 200,
    "dataId": "test35T5XhMsXfV4xKwUv8Ob74-1poXxF",
    "results": [{
      "tagData": {
        "summary": [{
            "rate": 37.72,
            "tagEnName": "Aircraft",
            "tagCnName": "飞行器",
            "enCategory":"entities",
            "cnCategory":"实体"
          },
          {
            "rate": 31.93,
            "tagEnName": "Hotel",
            "tagCnName": "旅馆",
            "enCategory":"entities",
            "cnCategory":"实体"
          }
        ],
        "details": [{
            "tagSegment": [{
              "duration": 1,
              "offset": 3,
              "rate": 40.73
            }],
            "tagEnName": "balloon",
            "tagCnName": "气球",
            "enCategory":"entities",
            "cnCategory":"实体"
          },
          {
            "tagSegment": [{
              "duration": 1,
              "offset": 4,
              "rate": 37.72
            }],
            "tagEnName": "Airship",
            "tagCnName": "飞艇",
            "enCategory":"entities",
            "cnCategory":"实体"
          },
          {
            "tagSegment": [{
              "duration": 2,
              "offset": 8,
              "rate": 41.48
            }],
            "tagEnName": "Traffic light",
            "tagCnName": "交通灯",
            "enCategory":"entities",
            "cnCategory":"实体"
          },
          {
            "tagSegment": [{
              "duration": 60,
              "offset": 60,
              "rate": 31.93
            }],
            "tagEnName": "Hotel",
            "tagCnName": "旅馆",
            "enCategory":"entities",
            "cnCategory":"实体"
          }
        ]
      },
      "rate": 99.91,
      "suggestion": "review",
      "label": "tag",
      "scene": "tag"
    }],
    "taskId": "vi636L2Z$Q43i6LRrWdITWhq-1poXxF",
    "url": "https://aligreen-misc-hangzhou.oss-cn-hangzhou.aliyuncs.com/test.mp4"
  }],
  "requestId": "5CAED310-CC31-4E34-9EB5-3C2E741BB870"
}