信息提交接口规范
更新时间:
一、 参数规范
- 请求 URL:
从“控制台-服务配置”中获取
- 接口描述:
提交视频信息接口,信息提交后,会对视频进行截图检测,检测结果需自行调用视频结果获取接口获取。
- 支持格式:
检测接口支持的视频封装格式:flv、mkv 、mp4 、rmvb 、avi 、wmv、3gp、ts、mov等。
- 大小限制:
视频大小限制:<1GB。
- HTTP 请求Header:
Header
值
描述
Content-Type
application/json;charset=UTF-8
请求体类型
Accept
application/json;charset=UTF-8
接受的返回类型
X-AppId
项目的唯一标识,此值是 <控制台-服务配置>中的项目编号
X-TimeStamp
请求的UTC时间戳。需要把时间戳按W3C标准格式化,例如: 2010-01-31T23:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime)。
Authorization
签名值
-
请求方法:POST
-
请求体JSON对象:
参数
必需
类型
描述
type
必需
Number
1:视频URL 2: 视频BASE64值
注:推荐使用BASE64方式调用,视频URL在网络不佳时可能会造成视频下载缓慢或下载失败等问题
video
必需
String
视频内容,如type=1,则该值为视频URL,如type=2,则该值为视频BASE64值。type为2时,视频必须小于10MB
lang
可选
String
视频中音频语种,不指定默认中文(zh-CN)
videoName
可选
String
视频文件名字,当type=2,视频为BASE64值时,此参数为必需,且能表示视频格式
frequency
可选
Number
截帧频率设置,默认值:10s以下视频默认2s截图检测一次,10s以上视频默认3秒截图检测一次。可设置范围为1~60秒
userId
可选
Srting
唯一的终端用户ID。 用户ID应当不超过32个字符。
userIP
可选
Srting
用户IP地址
did
可选
Srting
用户设备ID
dtype
可选
Srting
用户设备类型:1:iPhone 2:android 3: ipad 4:wphone 5: pc 6:web 7:wap
callbackRegion
可选
String
回调区域:默认cn,可选cn,us,ap。不给或不在取值范围内默认使用cn区域发起回调
callbackUrl
可选
String
回调url:http协议
callbackSecretKey
可选
String
回调密钥,可自行定义,需要在回调验签方式使用密钥一致,否则无法验证回调数据是否被篡改
-
请求体示例:
{
"type":2,
"videoName":test
"video":"http://xxx.xxx.com/xxxx",
"userId": "testUser",
"did": "868034031518269",
"dtype": "1"
}
-
请求签名:
当用户请求Video Submit API时,可以使用appId和secretKey(从“控制台-服务 配置“中获取)对请求做签名,当API收到带签名信息的请求之后,将使用相同的算法验证签名,如果发现签名不一致,API将会返回401给用户。
如果API验证签名一致,且appId对应的用户有权限操作请求的资源,则请求成功,否则API返回401。
- 通过 HTTP 请求 Header 发送签名
方法: 在请求中加入名为 Authorization 的 Header,值为签名值。如下:
Authorization: ****
- 签名计算方法
- 构造规范化的请求字符串(Canonicalized Query String)::
将请求体JSON字符串以UTF-8字符编码做sha256编码后转换为16进制字符串(注意不是Base64)
CanonicalizedQueryString = hex(sha256(jsonBody))
- 构造被签名字符串 StringToSign ("\n" 代表ASCII里的换行符)
StringToSign = HTTPMethod + "\n" +
HostHeaderInLowercase + "\n" +
HTTPRequestURI + "\n" +
CanonicalizedQueryString <从上一步得到> + "\n" +
"X-AppId:" + SAME_APPID_IN_HEADER + "\n" +
"X-TimeStamp:" + SAME_TIMESTAMP_IN_HEADER
HTTPRequestURI是请求URI的绝对路径,不包含请求串。如果HTTPRequestURI为空,也要保留一个正斜杠 ( / )
使用 HMAC-SHA256 协议创建基于哈希的消息身份验证代码 (HMAC),然后计算签名。
-
StringToSign作为签名字符串,secretKey作为秘钥,SHA256作为哈希算法
有关 HMAC 的更多信息,请参阅 https://tools.ietf.org/html/rfc2104。
-
将上一步的结果转换为BASE64串
-
将BASE64串放入HTTP请求Header的Authorization
- 签名示例
下面是appId & secretKey & video的示例
appId=***
secrectKey=****
video_url="http://xxx.xxx.com/xxxx"
下面是示例请求体
{
"type": 1,
"video":"http://xxx.xxx.com/xxxx",
"userId": "12345678"
}
生成CanonicalizedQueryString
b3ad8e9d16439ccd5e91924d2516bf9592975003f69beff44e56cddf47bd3118
生成StringToSign
POST
vsafe.ilivedata.com
/api/v1/video/check/submit
b3ad8e9d16439ccd5e91924d2516bf9592975003f69beff44e56cddf47bd3118
X-AppId:***
X-TimeStamp:2020-07-31T07:59:03Z
HMAC计算得到的签名
*****
一、 参数规范
- 请求 URL:
从“控制台-服务配置”中获取
- 接口描述:
提交视频信息接口,信息提交后,会对视频进行截图检测,检测结果需自行调用视频结果获取接口获取。
- 支持格式:
检测接口支持的视频封装格式:flv、mkv 、mp4 、rmvb 、avi 、wmv、3gp、ts、mov等。
- 大小限制:
视频大小限制:<1GB。
- HTTP 请求Header:
Header | 值 | 描述 |
---|---|---|
Content-Type | application/json;charset=UTF-8 | 请求体类型 |
Accept | application/json;charset=UTF-8 | 接受的返回类型 |
X-AppId | 项目的唯一标识,此值是 <控制台-服务配置>中的项目编号 | |
X-TimeStamp | 请求的UTC时间戳。需要把时间戳按W3C标准格式化,例如: 2010-01-31T23:59:59Z. (http://www.w3.org/TR/xmlschema-2/#dateTime)。 | |
Authorization | 签名值 |
-
请求方法:POST
-
请求体JSON对象:
参数 | 必需 | 类型 | 描述 |
---|---|---|---|
type | 必需 | Number | 1:视频URL 2: 视频BASE64值 注:推荐使用BASE64方式调用,视频URL在网络不佳时可能会造成视频下载缓慢或下载失败等问题 |
video | 必需 | String | 视频内容,如type=1,则该值为视频URL,如type=2,则该值为视频BASE64值。type为2时,视频必须小于10MB |
lang | 可选 | String | 视频中音频语种,不指定默认中文(zh-CN) |
videoName | 可选 | String | 视频文件名字,当type=2,视频为BASE64值时,此参数为必需,且能表示视频格式 |
frequency | 可选 | Number | 截帧频率设置,默认值:10s以下视频默认2s截图检测一次,10s以上视频默认3秒截图检测一次。可设置范围为1~60秒 |
userId | 可选 | Srting | 唯一的终端用户ID。 用户ID应当不超过32个字符。 |
userIP | 可选 | Srting | 用户IP地址 |
did | 可选 | Srting | 用户设备ID |
dtype | 可选 | Srting | 用户设备类型:1:iPhone 2:android 3: ipad 4:wphone 5: pc 6:web 7:wap |
callbackRegion | 可选 | String | 回调区域:默认cn,可选cn,us,ap。不给或不在取值范围内默认使用cn区域发起回调 |
callbackUrl | 可选 | String | 回调url:http协议 |
callbackSecretKey | 可选 | String | 回调密钥,可自行定义,需要在回调验签方式使用密钥一致,否则无法验证回调数据是否被篡改 |
-
请求体示例:
{ "type":2, "videoName":test "video":"http://xxx.xxx.com/xxxx", "userId": "testUser", "did": "868034031518269", "dtype": "1" }
-
请求签名:
当用户请求Video Submit API时,可以使用appId和secretKey(从“控制台-服务 配置“中获取)对请求做签名,当API收到带签名信息的请求之后,将使用相同的算法验证签名,如果发现签名不一致,API将会返回401给用户。
如果API验证签名一致,且appId对应的用户有权限操作请求的资源,则请求成功,否则API返回401。
- 通过 HTTP 请求 Header 发送签名
方法: 在请求中加入名为 Authorization 的 Header,值为签名值。如下:
Authorization: ****
- 签名计算方法
- 构造规范化的请求字符串(Canonicalized Query String)::
将请求体JSON字符串以UTF-8字符编码做sha256编码后转换为16进制字符串(注意不是Base64)
CanonicalizedQueryString = hex(sha256(jsonBody))
- 构造被签名字符串 StringToSign ("\n" 代表ASCII里的换行符)
StringToSign = HTTPMethod + "\n" +
HostHeaderInLowercase + "\n" +
HTTPRequestURI + "\n" +
CanonicalizedQueryString <从上一步得到> + "\n" +
"X-AppId:" + SAME_APPID_IN_HEADER + "\n" +
"X-TimeStamp:" + SAME_TIMESTAMP_IN_HEADER
HTTPRequestURI是请求URI的绝对路径,不包含请求串。如果HTTPRequestURI为空,也要保留一个正斜杠 ( / )
使用 HMAC-SHA256 协议创建基于哈希的消息身份验证代码 (HMAC),然后计算签名。
-
StringToSign作为签名字符串,secretKey作为秘钥,SHA256作为哈希算法
有关 HMAC 的更多信息,请参阅 https://tools.ietf.org/html/rfc2104。
-
将上一步的结果转换为BASE64串
-
将BASE64串放入HTTP请求Header的Authorization
- 签名示例
下面是appId & secretKey & video的示例
appId=***
secrectKey=****
video_url="http://xxx.xxx.com/xxxx"
下面是示例请求体
{
"type": 1,
"video":"http://xxx.xxx.com/xxxx",
"userId": "12345678"
}
生成CanonicalizedQueryString
b3ad8e9d16439ccd5e91924d2516bf9592975003f69beff44e56cddf47bd3118
生成StringToSign
POST
vsafe.ilivedata.com
/api/v1/video/check/submit
b3ad8e9d16439ccd5e91924d2516bf9592975003f69beff44e56cddf47bd3118
X-AppId:***
X-TimeStamp:2020-07-31T07:59:03Z
HMAC计算得到的签名
*****