指定视频时间点截图

接口描述

1、通过视频id添加单个视频指定时间点截图任务
2、接口URL中的{userid}为点播账号userid,具体参考菜单【使用须知】->【获取密钥】
3、接口支持https协议

接口URL

http://api.polyv.net/v2/video/snapshot/{userid}/addTask

在线API调用

请求方式

POST

接口约束

1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看

请求参数描述

参数名必选类型说明

userid

true

String

保利威点播账户id,可以参考【获取密钥】获取,获取路径:官网->登录->点播(API接口)

ptime

true

Long

当前时间的毫秒级时间戳,3分钟内有效

sign

true

String

签名,为40位大写的SHA1值,生成签名的secretkey密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据【详见签名生成规则

vid

true

String

视频id

offsetTimes

true

String

截图时间点,每个任务最多20个,多个时间点以英文逗号分隔,如:5,10,15,20

width

false

String

截图的宽度,默认为原视频宽

height

false

String

截图的高度,默认为原视频高

callbackUrl

false

String

截图完成后的回调地址,截图任务完成会通过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

响应参数描述

参数名类型说明

code

Integer

响应状态码,200为成功返回,非200为失败【详见全局错误说明

status

String

响应状态文本信息

message

String

响应描述信息,当code为400或者500的时候,辅助描述错误原因

data

Integer

任务id

回调说明

截图任务完成结果信息回调,可以及时通知用户截图任务的结果

原理

通过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": []
}

回调字段说明

参数名类型说明

taskId

Integer

任务id

vid

String

视频id

status

String

任务状态,成功为success,失败为fail

snapshots

Array

任务成功为截图信息数组,失败为空数组【详见snapshots参数描述

snapshots参数描述

字段类型说明

offsetTime

Integer

截图时间点

imageUrl

String

截图的url地址

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": ""
}

Last updated