播放加密视频

保利威视频加密采用私有的加密算法,提供包括加密转码、安全传输、解密播放等一体化的视频安全方案。通过对视频数据本身进行高强度的加密,视频文件即使被下载到本地也无法直接播放和传播,可有效防止视频泄露和盗版问题,详见:视频加密

为了方便开发者快速集成,我们将解密播放相关逻辑都封装到了播放器内部,与播放普通视频相比,在播放器端,开发者只需多传入播放凭证参数即可实现加密视频的播放。

开发指引

加密视频,需使用播放凭证方式进行播放,播放器需要传递的参数如下:

名称
类型
说明

playsafe

String/Function

PC端播放加密视频所需的授权凭证,业务方服务端通过创建 Playsafe Token接口获取并返回给播放器。

playsafeUrl

String

获取PC端播放加密视频凭证的接口URL(与playsafe参数二选一

ts

Number

移动端H5播放加密视频需传入的13位毫秒级时间戳

sign

String

移动端H5播放加密视频所需的签名,生成规则为点播账号的secretkey、vid、ts的值按顺序拼接后进行md5计算后的值,由业务方服务端生成并返回给播放器。 注:sign签名不需要转大写。 签名示例: 若secretkey为abc,vid为123,ts为1672829071000,此时签名sign为md5("abc1231672829071000")

注:playsafe或playsafeUrl参数用于PC端解密播放,ts、sign用于移动端H5播放器解密。如果PC和移动端使用同一份播放器代码,则三个参数都需要传值。

播放器代码示例:

<div id="player"></div>
<script src="//player.polyv.net/resp/vod-player/latest/player.js"></script>
<script>
var player = polyvPlayer({
    wrap: '#player',
    width: 800,
    height: 533,
    vid: '88083abbf5bcf1356e05d39666be527a_8',   
    playsafe:'81814fed-bdd0-4506-bec1-ebc8093148c5-hfevwsfxcsbcocx', 
  //playsafeUrl:'https://myDomain.com/token', // 业务方自定义的获取播放凭证接口URL,与playsafe参数二选一
    ts:'1568131545000',
    sign:'88313661ba7ded642c7b557b0a364b4b'
});

//切换加密视频时,需要重新获取播放凭证。如果初始化播放器时使用了playsafeUrl参数,则播放器会自动获取新的凭证,无需传playsafe参数。
player.changeVid({
  vid: '88083abbf5bcf1356e05d39666be527a_9', //需要切换的视频vid
  playsafe: '81814fed-bdd0-4506-bec1-ebc8093148c6-hfevwsfxcsbcocx', //新获取的playsafe token
  sign: '88313661ba7ded642c7b557b0a364b4c', //新获取的sign和ts参数
  ts: '1568131545001'
});
</script>

Web页面播放加密视频前,需要先访问业务方自己的服务端授权验证接口(可以在这里加上自有业务的授权验证逻辑,例如是否登录、是否购买课程等, 建议使用HTTPS)。如果业务上允许播放,则通过创建 Playsafe Token接口获取播放凭证(或者在服务端生成sign、ts参数),并返回给Web端播放器。

服务端生成播放凭证代码示例:

PHP 代码:

Java SpringMvc代码:

如果播放器使用playsafeUrl参数的方式,则需输出json格式:

PHP 代码

Java SpringMvc代码

playsafeUrl返回结果示例:

playsafeUrl可能存在跨域问题,解决方案请参考:跨域访问设置

如果需要在移动端H5播放Web加密视频,则需返回sign和ts参数给播放器:

Last updated

Was this helpful?