接口描述
1、通过视频id添加单个视频指定时间点截图任务
2、接口URL中的{userid}为点播账号userid,具体参考菜单【使用须知】->【获取密钥】
3、接口支持https协议
接口URL
http://api.polyv.net/v2/video/snapshot/{userid}/addTask
在线API调用
请求方式
接口约束
1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看
请求参数描述
参数名 | 必选 | 类型 | 说明 |
---|
| | | 保利威点播账户id,可以参考【获取密钥】获取,获取路径:官网->登录->点播(API接口) |
| | | |
| | | 签名,为40位大写的SHA1值,生成签名的secretkey密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据 【详见签名生成规则】 |
| | | |
| | | 截图时间点,每个任务最多20个,多个时间点以英文逗号分隔,如:5,10,15,20 |
| | | |
| | | |
| | | 截图完成后的回调地址,截图任务完成会通过post请求发送结果信息到回调地址【详见回调说明】 |
示例
http://api.polyv.net/v2/video/snapshot/1b448be323/addTask
表单参数:
vid=1b448be32303e4922a8f70d6b48220ae_1&offsetTimes=5,10,15,20&width=300&sign=4FEC87EC6841211C36EC51A072A6D64DF72E1AF4&userId=1b448be323&ptime=1617700224540&height=300
响应参数描述
参数名 | 类型 | 说明 |
---|
| | 响应状态码,200为成功返回,非200为失败【详见全局错误说明】 |
| | |
| | 响应描述信息,当code为400或者500的时候,辅助描述错误原因 |
| | |
回调说明
截图任务完成结果信息回调,可以及时通知用户截图任务的结果
原理
通过HTTP协议,向callbackUrl(回调地址)发送POST请求,将任务结果通知到用户设置的回调地址
举例说明
截图任务完成后,polyv会回调该接口,并带上签名信息,开发者可以通过签名信息来校验调用是否为polyv的合法调用,具体的签名规则:md5("snapshot" + vid + secretKey) 。如vid="e6b23c6f51350f106556806a576b1942_e",secretKey="testKey",那么sign="3adb60893894d422d00ed2efae8c41f3" (小写md5)。 最终回调的url为http://example.polyv.net/snapshot-callback.do?sign=3adb60893894d422d00ed2efae8c41f3
任务成功回调信息
{
"taskId": 123,
"vid": "e6b23c6f51350f106556806a576b1942_e",
"status": "success",
"snapshots": [
{
"offsetTime": 12,
"imageUrl": "http://vod-assets.videocc.net/snapshot/e6b23c6f51/e6b23c6f519df1d317cca208edd448cb/12.jpg"
},
{
"offsetTime": 78,
"imageUrl": "http://vod-assets.videocc.net/snapshot/e6b23c6f51/e6b23c6f519df1d317cca208edd448cb/78.jpg"
}
]
}
任务失败回调信息
{
"taskId": 123,
"vid": "e6b23c6f51350f106556806a576b1942_e",
"status": "fail",
"snapshots": []
}
回调字段说明
snapshots参数描述
Java请求示例
快速接入基础代码请下载相关依赖源码, 点击下载源代码 ,下载后加入到自己的源码工程中即可。测试用例中的HttpUtil.java 和 VodSignUtil.java 都包含在下载文件中。
强烈建议您使用点播Java SDK完成API的功能对接,点播Java SDK 对API调用逻辑、异常处理、数据签名、HTTP请求线程池进行了统一封装和优化。
private static final Logger log = LoggerFactory.getLogger(VodSnapshotTest.class);
/**
* 指定视频时间点截图
* @throws Exception
* @throws NoSuchAlgorithmException
*/
@Test
public void testAddSnapshotTask() throws Exception, NoSuchAlgorithmException {
//公共参数,填写自己的实际参数
String secretKey = super.secretKey;
String userId = super.userId;
String ptime = String.valueOf(System.currentTimeMillis());
//业务参数
String url = String.format("http://api.polyv.net/v2/video/snapshot/%s/addTask", userId);
String vid = "1b448be32303e4922a8f70d6b48220ae_1";
String offsetTimes = "5,10,15,20";
String width = "300";
String height = "300";
String callbackUrl = "http://example.polyv.net/snapshot-callback.do";
Map<String, String> requestMap = new HashMap<>();
requestMap.put("userId", userId);
requestMap.put("ptime", ptime);
requestMap.put("vid", vid);
requestMap.put("offsetTimes", offsetTimes);
requestMap.put("width", width);
requestMap.put("height", height);
requestMap.put("callbackUrl", callbackUrl);
requestMap.put("sign", VodSignUtil.getSign(requestMap, secretKey));
String response = HttpUtil.postFormBody(url, requestMap);
log.debug("测试指定视频时间点截图,{}", response);
//do somethings
}
响应示例
系统全局错误说明详见全局错误说明
成功示例
{
"code": 200,
"status": "success",
"message": "success",
"data": 2036
}
异常示例
签名不正确
{
"code": 400,
"status": "error",
"message": "the sign is not right",
"data": ""
}