相关说明
提示:从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
文件后面加上相同的防盗链参数,也就是说如果设置counts
为1
,则m3u8
仅能请求一次,在请求m3u8
的时候,key
文件也仅能加载一次,配合TS
加密可防止用户获取到m3u8
内容一瞬间构建自己的第三方m3u8
并且填充TS
切片和key
文件内容。
没权限M3U8返回说明
由于最新版本新增切片广告,如果你没有添加任何切片广告,则无权限M3U8
会自动返回403
;如果你添加过一个或多个切片广告,则无权限M3U8
的会随机返回其中一个切片广告。
相关设置:点击查看,可自行拓展相关玩法。