跳到主要内容

视频文件同步接口

1. 接口介绍

该接口对视频内容进行检测识别,并同步返回识别结果,适用于时长小于 60 秒且文件大小小于 100M 的短视频。

提示
  • 接口并发限制:默认每秒请求数不超过 50 次;
  • 语音文件大小限制:默认不超过 100M,请联系我们调整并发及文件限制;
  • 支持的格式:flvmkvmp4rmvbaviwmv3gptsmovgifm3u8mpg/mpegmxf

截图分辨率

如果视频的短边分辨率超过 1024 像素,则截取的图片以 1024/短边 等比例截取。例如:视频分辨率为 1920x1080, 截图的分辨率为 1820x1024

2. 请求

2.1 请求地址

区域请求地址
国内https://api.video.tuputech.com/v3.1/recognition/video/syncscan/<secretId>
国外https://api-oversea.video.tuputech.com/v3.1/recognition/video/syncscan/<secretId>
提示

<secretId> 需替换为您的应用 SID,请联系客户经理为您开通及配置。关于 SID 详见 常见问题(FAQ)

2.2 请求方法

POST

2.3 请求头

Content-Type: multipart/form-data 或 application/json

2.4 超时时间及异常处理

建议配置超时时间 60 秒,在 HTTP 响应状态码非 200 或业务状态码不为 0 时进行重试。

危险

由于模型基于请求流量动态伸缩,在空闲一定时间后会关闭(部分专用模型空闲一定时间后会关闭全部实例)。 由于模型冷启动耗时较长,部分请求可能无法处理,最终返回非 200 HTTP 状态码或业务状态码 101。该现象可能在以下情况下出现:

  • 初次请求
  • 长时间未调用后再次请求
  • 请求流量突增
  • 请求存在规律性的流量波动(例如每隔超过 5 分钟请求一批数据,或仅在工作日期间有大量请求)

针对以上情况,我们分别建议您:

  • 间隔 2~3 分钟后重试
  • 间隔 2~3 分钟后重试,并且后续保持至少每分钟 1 次调用
  • 提前进行预热,或及时联系我们扩容
  • 调整业务请求时间间隔到 5 分钟内,或联系我们调整实例保持策略。若您的业务仅在工作日期间有大量请求,节假日期间较少,请务必联系我们

2.5 请求参数说明 🔥

参数名称类型是否必填说明
videoString 或 File视频文件内容或文件地址。

1. 提交视频文件时,指定 ContentType: multipart/form-data
2. 提交视频链接时,指定 ContentType: application/json
3. 支持的容器格式:flvmkvmp4rmvbaviwmv3gptsmovgifm3u8mpg/mpegmxf
4. 出于安全考虑,视频链接端口除 80, 443 端口外,应在 1025-65535 范围内
timestampNumber当前服务器的 Unix 时间戳
nonceNumber随机数
signatureString

RSA-SHA256 算法签名。签名步骤:

  1. 将参与签名的参数(secretIdtimestampnonce)用英文半角逗号 , 拼接,得到 SignString
  2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。
  • 点击 数字证书 下载私钥。私钥有 rsapkcs8 两种格式,通常 Golang,Python 使用 rsa 格式私钥,Java 使用 pkcs8 格式私钥
  • 点击 签名及验证示例 查看签名示例
intervalNumber视频截图间隔,单位秒。取值范围 [0.5, 10],默认 1 秒。

1. 请注意,截图时间间隔越短,接口耗时越长
maxFramesNumber最大截图数量(达到最大截图数量则结束截图),取值范围 [5, 200],默认 200 张。

1. 请注意,截图数量越多,接口耗时越长
tasksArray<String>指定的任务 ID。通常单个应用(接口)下会配置多个识别任务,可根据业务需要指定其中的部分任务进行识别
customInfoObject<String, String/Int/Object>自定义信息,用于给请求附加额外信息(比如:关联的信息)。

1. 请注意,该参数仅支持 JSON 请求

2.5 请求示例

{
"video": "<url>",
"interval": 1,
"maxFrames": 20,
"tasks": [
"<taskId>"
],
"customInfo": {
"tag": "<tag>"
},
"timestamp": 1685000000,
"nonce": 1685000000,
"signature": "<signature>"
}

3. 同步响应

3.1 响应参数说明 🔥🔥

参数名称类型说明
signatureString

同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥 进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:

  1. json 字段内容为 SignString
  2. signature 字段内容进行 Base64 解码,得到 RawSignature
  3. 使用图普公钥以 SHA256 算法验证 RawSignatureSignString
jsonString

同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。

  • 字段内容示例:{\"code\":0, \"message\":\"success\"}
  • 字段详见下述 JSON 参数说明
  • 为方便展示,同步响应及回调请求的示例中,均为解析后的 JSON

JSON 参数说明

参数名称类型是否必有说明
codeNumber状态码,详见 业务状态码
messageString状态信息
requestIdString请求 ID
suggestionInt建议的操作,详见汇总结果解析中的 Suggestion 处理建议说明
riskTypeInt风险类型,详见汇总结果解析中的 RiskType 风险类型说明
<任务 ID>Object识别任务的结果,每个识别任务会有 全局固定不变taskId 和对应数据结构,详见下述链接:

1. 图片类任务结果
2. 文本类任务结果
3. 语音类任务结果
videoInfoVideoInfo视频信息,详见 VideoInfo 数据结构
customInfoObject自定义信息,请求的附加额外信息
nonceNumber随机数
timestampNumber当前服务器的 Unix 时间戳

VideoInfo 数据结构

参数名称类型说明
captureStartString视频截图开始时间,UTC 时区,格式为 2023-01-01T00:00:00Z
capturedImagesInt视频截图数量
durationFloat视频时长,单位秒
messageString状态信息,待废弃
statusString状态,待废弃

3.2 响应示例

{
"code": 0,
"message": "success",
"requestId": "<requestId>",
"riskType": 1,
"suggestion": 1,
"videoInfo": {
"captureStart": "2024-06-27T10:00:36.676Z",
"capturedImages": 5,
"duration": 178.959
},
"54bcfc6c329af61034f7c2fc": {
"label": 2,
"review": false,
"maximums": [
{
"label": 2,
"max": 0.9996845
}
],
"statistics": [
{
"label": 2,
"count": 5
}
]
},
"5c8213b9bc807806aab0a574": {
"segments": [
{
"label": 0,
"review": false,
"speechUrl": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2024-06-25/17-7/dc3d2e77595848f587e480c3122e9308/1719308059.3199254614884960538.wav",
"startTime": 40,
"endTime": 50
}
]
},
"5ca1bd6b3872ecc9afb99132": {
"segments": [
{
"content": "今天是二零一零年一月十九号星期二欢迎收看东方新闻我是小蕾我是名我们在上海的直播向各位问号今天",
"speechUrl": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2024-06-25/17-7/dc3d2e77595848f587e480c3122e9308/1719308058.924176429564889229.wav",
"startTime": 0,
"endTime": 10
}
],
"text": "今天是二零一零年一月十九号星期二欢迎收看东方新闻我是小蕾我是名我们在上海的直播向各位问号今天中国二零一年上海世博会开幕还有一百零二天在快速浏览了今天的主要新闻之后我们来看详细报道上海市党政负责干部会议昨天下午举行传达学习贯彻胡锦涛总书记在上海考察时的重要讲话精神中共中央政治局委员上海市委书记俞正声强调要承担起中央交给上海的重任不辜负党中央和胡锦涛总书记的殷切期望努力把上海世博会成一届成功精彩难忘的会努力开创上海改革开放和社会主义现代化建设的新局面好推动科学发展促进社会和谐的排头兵。爸爸爸哎呀。骗你干嘛不行我再把微信发到发到群里面谁加我把明天到群里面我不抢不好意思人那个幺八二幺八三二零七七你搜索一下我看那个八样子普通话都不会说啊那新疆的新疆的普通话不会说个人不会说实话他找派出所帮他他找他说我说我操你妈呀那个操因为啥我觉得一会儿和谐我就打了操打了个对讲一个啊你喜欢看女孩子穿哪个颜色的内衣在一起啪啪啪的时候你喜欢女生在上面还是在下面是说过了吗你什么时候说的呀这个问题都没人问做科举行谈七月二十六号李克强在北京会见第一总七月二十六号李克强能说不么什么国家领导人国家政治人物都一个都不能说我问他要不要上来他上来我就下去我在我我一儿子我天"
},
"5e1d634d2809c24f6d909bd3": {
"fileList": [
{
"label": 3,
"rate": 1,
"review": false,
"name": "dc3d2e77595848f587e480c3122e9308-2",
"url": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2024-06-25/17-7/dc3d2e77595848f587e480c3122e9308/1719308060.8792260137839713552.jpeg",
"offset": 5,
"second": 2.9999999105930355,
"objects": [
{
"location": [
[
0,
0
],
[
0.5,
0
],
[
0.5,
1
],
[
0,
1
]
],
"scores": 1,
"text": "毛泽东(1893~1976)伟大的马克思主义者,无产阶级革命家、战略家和理论家, 中国共产党、中国人民解放军和中华人民共和国的主要缔造者和领导人。",
"degree": 0,
"textAnalysis": {
"label": 3,
"review": false,
"rate": 1,
"details": [
{
"keyword": "毛泽东",
"hint": "毛泽东",
"mainLabel": 3,
"subLabel": "Political_Negative_events"
}
]
}
}
]
}
],
"label": 3,
"review": false,
"maximums": [
{
"label": 3,
"max": 1
},
{
"label": 0,
"max": 1
}
],
"statistics": [
{
"label": 3,
"count": 2
},
{
"label": 0,
"count": 3
}
]
},
"nonce": 1685000000,
"timestamp": 1685000000
}