获取视频播放凭证
更新时间:2024-08-05 16:37:36
接口描述
1、通过子账号id和视频id,创建加密视频的播放凭证,即 Playsafe Token
2、如果一个凭证token尚未过期,此时使用相同的 videoId、viewerId、viewerIp、iswxa 参数值请求该接口,
会复用原来的凭证token,并延长原凭证token的有效期
3、接口支持https协议
接口URL
http://hls.videocc.net/service/v2/token/create-child
请求方式
POST
接口约束
1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看
2、该接口目前仅支持子账号。如果要为主帐户创建凭证token ,可以参考【获取视频播放凭证】
请求参数描述删除视频
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| appId | true | String | 保利威点播子账户appId,获取路径:保利威点播后台->设置->账号管理 |
| ts | true | Long | 当前的时间,13位毫秒级时间戳,10分钟内有效,例如:1617863545204 |
| sign | true | String | 签名,32位大写MD5值【详见MD5签名生成规则】 |
| videoId | true | String | 视频的id,获取路径:保利威点播后台->视频列表; 也可以获取自【上传视频】; 例如:1b448be32370f4822ac40fd926112a66_1 |
| viewerId | true | String | 观看者id,要求不同的观看者使用不同的id,由数字字母组成 |
| viewerIp | false | String | 观看者ip,如果为空,会自动获取调用该接口时的ip |
| viewerName | false | String | 观看者名称 |
| expires | false | Long | 播放凭证token的有效时长,单位为秒。为空时默认为10分钟 |
| disposable | false | Boolean | 播放凭证token是否一次有效,默认为 false true:表示凭证token仅一次有效,即验证一次后,凭证token就失效了 false:表示在有效期内可以多次验证 |
| iswxa | false | Integer | 是否微信小程序播放,默认为0 1:是 0:否 |
| extraParams | false | String | 自定义的其它参数 |
| securitySeed | false | String | 私有加密视频自定义token加密因子, 用于提高视频播放的安全性, 需搭配指定的播放器使用, 详细使用规则请咨询保利威客服 |
示例
http://hls.videocc.net/service/v2/token/create-child
表单参数:
viewerName=%E8%A7%82%E7%9C%8B%E8%80%85%E6%98%B5%E7%A7%B0&expires=10000&viewerId=ovtl9t_RxnrTdqkXqkT5Q5lnxp2A&appId=a0Wmol5EwX&viewerIp=59.41.20.74&sign=6804C5B24FED47E49776C2CB85823316&videoId=1b448be32370f4822ac40fd926112a66_1&extraParams=ddd&iswxa=1&disposable=true&ts=1617936971500
响应参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 响应状态码,200为成功返回,非200为失败【详见全局错误说明】 |
| status | String | 响应状态文本信息 |
| message | String | 响应描述信息,当code为400或者500的时候,辅助描述错误原因 |
| data | Object | 响应成功时返回播放凭证的详细信息【详见data字段说明】,响应失败时返回错误原因 |
data字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| token | String | 视频播放凭证 |
| userId | String | 保利威点播账户id |
| appId | String | 子账号appId |
| videoId | String | 视频id |
| viewerIp | String | 观看者ip |
| viewerId | String | 观看者id |
| viewerName | String | 观看者名称 |
| extraParams | String | 自定义的其它参数 |
| ttl | Long | 凭证token 有效时长,单位为毫秒 |
| createdTime | Long | 凭证token 创建时间 |
| expiredTime | Long | 凭证token 过期时间 |
| iswxa | Integer | 是否微信小程序播放 1:是 0:否 |
| disposable | Boolean | 播放凭证token是否一次有效 true:表示凭证token仅一次有效,即验证一次后,凭证token就失效了 false:表示在有效期内可以多次验证 |
Java请求示例
快速接入基础代码请下载相关依赖源码, 点击下载源代码 ,下载后加入到自己的源码工程中即可。测试用例中的HttpUtil.java 和 VodSignUtil.java 都包含在下载文件中。
强烈建议您使用点播Java SDK完成API的功能对接,点播Java SDK 对API调用逻辑、异常处理、数据签名、HTTP请求线程池进行了统一封装和优化。
private static final Logger log = LoggerFactory.getLogger(VodSubAccountTest.class);
/**
* 获取视频播放凭证
* @throws Exception
* @throws NoSuchAlgorithmException
*/
@Test
public void testCreateSubToken() throws Exception, NoSuchAlgorithmException {
//公共参数,填写自己的实际参数
String appId = super.appId;
String appSecret = super.appSecret;
String ts = String.valueOf(System.currentTimeMillis());
//业务参数
String url = "http://hls.videocc.net/service/v2/token/create-child";
String videoId = "1b448be32370f4822ac40fd926112a66_1";
String viewerId = "ovtl9t_RxnrTdqkXqkT5Q5lnxp2A";
String viewerIp = "59.41.20.74";
String viewerName = "观看者昵称";
String expires = "10000";
String disposable = "true";
String isWXa = "1";
String extraParams = "ddd";
Map<String, String> requestMap = new HashMap<>();
requestMap.put("appId", appId);
requestMap.put("videoId", videoId);
requestMap.put("ts", ts);
requestMap.put("viewerId", viewerId);
requestMap.put("viewerIp", viewerIp);
requestMap.put("viewerName", viewerName);
requestMap.put("expires", expires);
requestMap.put("disposable", disposable);
requestMap.put("iswxa", isWXa);
requestMap.put("extraParams", extraParams);
//用md5进行签名,使用子账号的secretKey签名
requestMap.put("sign", VodSignUtil.getSignMd5(requestMap, appSecret));
String response = HttpUtil.postFormBody(url, requestMap);
log.debug("测试获取视频播放凭证,{}", response);
//do somethings
}
响应示例
系统全局错误说明详见全局错误说明
成功示例
{
"code": 200,
"status": "success",
"message": "",
"data": {
"token": "783428b1-8b92-4c56-b255-9e14214b75b9-eesrv9rRagxTktuXtuT8Q8vgaf2A",
"userId": "1b448be323",
"appId": "a0Wmol5EwX",
"videoId": "1b448be32370f4822ac40fd926112a66_1",
"viewerIp": "59.41.20.74",
"viewerId": "ovtl9t_RxnrTdqkXqkT5Q5lnxp2A",
"viewerName": "观看者昵称",
"extraParams": "ddd",
"ttl": 10000000,
"createdTime": 1617936972611,
"expiredTime": 1617946972611,
"iswxa": 1,
"disposable": true
}
}
异常示例
{
"code": 403,
"status": "error",
"message": "sign_not_found",
"data": "sign parameter not found."
}
