此方法基本屏蔽市面 所有的播放地址嗅探(手机浏览器嗅探),以及m3u8下载合成mp4 工具
支持平台:
移动端 IOS系列 经测试基本不支持
基本安卓移动端不含自行嗅探功能的基本都支持
window MAC PC 基本测试没问题
APP肯定就不用说了,处理下就OK了
这就有点像优酷,腾讯,爱奇艺,芒果 这类的大站的对 drm版权数字加密 处理,只能在PC和自个的移动端上播放。
不过方法不同,这个更是简单粗暴
相关记录:
[rihide]
//引用最新的hls文件
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/dplayer@latest/dist/DPlayer.min.css">
<!--hls文件-->
<script src="https://cdn.jsdelivr.net/npm/hls.js/dist/hls.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/dplayer/dist/DPlayer.min.js"></script>
//重写dplayer播放器的hls config
var dp = new DPlayer({
container: document.getElementById('video'),
theme: '#4C8FE8',
volume: 0.8,
autoplay: true,
video: {
url: urls,
type: 'hls',
defaultQuality: 0
},
pluginOptions: {
hls: {
pLoader: pLoader,//重写这个方法,就可以改了...
// hls config
xhrSetup: function(xhr, url) {
//这个方法其实可以删除的,跟重写上面的方法功能类似,但没有上面的强大..
//每个ts的url加载都会走这里...
//这里可以修改url地址..但不能删..(如果不去open的话,就会404...)
//这里就不删了,做个记录...
/////
//////
///////如果要用的话,记着删了这个if的逻辑...
////这个地方我是记录用的....
if (/\.ts/.test(url)) {
url = url + '?_q=123456'
xhr.open('GET', url, true);
}
}
},
},
});
class pLoader extends Hls.DefaultConfig.loader {
constructor(config) {
super(config);
var load = this.load.bind(this);
this.load = function(context, config, callbacks) {
//这里有两个值manifest level
//manifest:加载最早的,但这个东西有时候还包裹着另外一层,不是最终的。看情况
// level:这玩意貌似是最后的...
if (context.type == 'level') {
var onSuccess = callbacks.onSuccess;
callbacks.onSuccess = function(response, stats, context) {
//这是重点...实现方法在下面
response.data = process(response.data);
onSuccess(response, stats, context);
}
}
load(context, config, callbacks);
};
}
}
//playlist是m3u8的ts文件内容
//所以可以在这里用正则或者其他替换方法
//进行对ts文件地址的增删改查
function process(playlist) {
//这个正则也是举例子...没有具体的需求跟实际意义
//具体怎么替换根据需求写......
//不要纠结为什么写这个
//因为我愿意,这是我的博客....
var arr = playlist.match(/#EXTINF(?:.|\n)*?ts\n/gi);
if (arr != null){
for (var i = 0; i < arr.length; i++) {
var strts = arr[i];
//给每个ts链接增加一个q=12345的参数,只是举个例子
//不要纠结有没有意思
strts=strts+"?q=12345";
playlist = playlist.replace(strts, "");
}
}
return playlist;
}
[/rihide]
© 版权声明
THE END
暂无评论内容