时间戳和指定次数防盗链

相关说明

提示:从20220605版本开始,时间戳新增切片广告功能,即如果设置过一个或多个切片广告,则无权限的M3U8会随机返回其中一个切片广告。

此前开发过基于hls双重加密的防盗链,虽然在防盗上十分完美,几乎达到99.99%防盗效果,但由于国内环境,兼容性有点瑕疵,于是就诞生了时间戳和指定次数防盗链功能,依然可以很大程度上防播防下载。

内置CMS苹果CMS都已对接时间戳防盗链,且内置CMS开启就可以直接用了;苹果CMS需要替换一个文件:点击下载,下载后解压,并编辑All.php文件,并修改24行的时间戳值,和后台设置的一致,最后覆盖到苹果CMS源码的application/common/controller目录即可;且使用苹果CMS 10最新版和DPlayer播放器测试通过。

相关原理

我们可以直接在转码相关-时间戳/加密里边开启时间戳、播放次数防盗链功能,并且设置防盗链key,拿到key之后,通过拼接参数,最后md5加密之后将参数添加到m3u8后面,后台会判断是否为正确链接和参数,正确才会返回正常的内容,如果不正确,会直接403,图文说明如下:

开发说明

提示:该功能需要前往 转码相关-时间戳/加密开启 时间戳+播放次数防盗链,并设置时间戳防盗链key;转码前中后期可随意开关,开启立即生效,关闭立即失效,不改变任何数据文件等。

第三方应用可以很方便的对接这个防盗链功能,自行设定counts播放次数,timestamp精确到毫秒的13位过期时间戳,然后根据需要播放的m3u8地址(/videos开头m3u8结尾,无需带域名),然后使用后台设置的防盗链key进行字符串拼接之后,通过md5算法加密成32位小写key,然后再将参数拼接到url后面进行访问即可。

建议极限情况下,可设置时间戳为当前日期+5秒,播放次数1,则浏览器通过API获取到m3u8自动加载播放的时候,链接立刻过期!建议配合ts加密,程序在处理m3u8内容的时候,会自动在key文件后面加上相同的防盗链参数,也就是说如果设置counts1,则m3u8仅能请求一次,在请求m3u8的时候,key文件也仅能加载一次,配合TS加密可防止用户获取到m3u8内容一瞬间构建自己的第三方m3u8并且填充TS切片和key文件内容。

没权限M3U8返回说明

由于最新版本新增切片广告,如果你没有添加任何切片广告,则无权限M3U8会自动返回403;如果你添加过一个或多个切片广告,则无权限M3U8的会随机返回其中一个切片广告。

相关设置:点击查看,可自行拓展相关玩法。