获取视频播放凭证

接口描述

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

在线API调用

请求方式

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

Last updated