移动端web的授权播放功能与原理

随着移动端视频技术的发展,用户对移动端观看视频的需求日益增加,教育行业对移动端的视频版权保护意识的日益加强,保利威视推出了移动端web的授权播放功能,以保护用户的移动端视频观看的版权。

实现移动端web的授权播放功能,首先需要在POLYV后台进行如下设置:

保存好以上设置之后,还需要在页面代码中添加ts和sign参数。当手机浏览器请求m3u8地址时,会将ts和sign参数传递给m3u8地址,m3u8的key授权服务器收到参数后进行校验。如果ts和sign参数正确,保利威视的key授权服务器会返回正确的key文件给播放器。如果ts或sign参数错误,则会返回400错误。

以下以PHP为示例代码,其中ts参数为当前时间戳乘以1000,sign为secretkey、vid、ts按顺序拼凑起来的字符串进行MD5计算得到的结果。

<?php
$vid = "e2e84a738354402a52ce81aeab4e3067_e";
$secretKey= "7UagtQOq2A";
$ts=time()*1000;
  
$hash = md5($secretKey.$vid.$ts);
?>
 
<script src='http://static.polyv.net/file/polyvplayer_v2.0.min.js'></script>
<div id='plv_e2e84a738354402a52ce81aeab4e3067_e'></div>
<script>
var player = polyvObject('#plv_e2e84a738354402a52ce81aeab4e3067_e').videoPlayer({
    'width':'600',
    'height':'485',
    'vid' : 'e2e84a738354402a52ce81aeab4e3067_e',
    'ts':'<?php echo $ts; ?>',
    'sign':'<?php echo $hash; ?>'
});
</script>

整个移动端web的授权播放功能实现过程,如下图所示:

那么,保利威视是如何重视并保护移动端访问的m3u8文件呢?

首先,我们来看一下m3u8文件里面的具体内容。

其中,m3u8文件在播放过程中需要用来解密播放ts文件的key,如下图所示:

接下来,在“开放授权”(在“POLYV后台”——“视频设置”——“移动端加密设置”里面设置)的情况下,直接访问key文件 http://hls.videocc.net/e2e84a7383/7/e2e84a738354402a52ce81aeab4e3067_1.key ,访问正常,返回200。如下图所示:

如果在“web授权”的情况下,直接访问key文件http://hls.videocc.net/e2e84a7383/7/e2e84a738354402a52ce81aeab4e3067_1.key ,则访问异常,返回400错误。如下图所示:

那在“web授权”的情况下,使用保利威视移动端web的授权播放功能,如何合法正确地请求m3u8文件,从而获取到合法的key文件呢?

首先,获取用户页面代码中的ts(时间戳)和sign参数,将这两个参数拼接到原来的m3u8地址中,得到合法的m3u8地址 http://hls.videocc.net/e2e84a7383/7/e2e84a738354402a52ce81aeab4e3067_1.m3u8?ts=1437043087000&sign=7318672c72cc6a1991cf3817537900e3 ,访问请求到合法的m3u8文件。如下图所示:

接下来,从合法的m3u8文件中获取到合法的key地址 http://hls.videocc.net/e2e84a7383/7/e2e84a738354402a52ce81aeab4e3067_1.key?ts=1437043087000&sign=9cc24d16d03623e74041e3a757dffa65 ,访问请求到合法的key文件,返回200。如下图所示:

由于在“web授权”的情况下,key文件的生存时间为5分钟。5分钟过后,则之前的key文件失效,访问原来的key文件则会返回400错误。如下图所示:

Last updated