欢迎光临散文网 会员登陆 & 注册

B站Web端直播分区首页自动播放?一行过滤规则解决问题

2022-10-11 23:36 作者:Microsoft365  | 我要投稿

由于笔者个人Windows设备使用居多,平常观看B站直播主要使用的是Web端。而就在前一阵子解决了直播房间的P2P上传占用带宽问题之后,某天打开B站直播首页,发现居中的推荐直播从默认加载静态封面变成了自动播放,不仅占用下载网络带宽,还会自动播放声音,这个用户体验可以说是非常贴心了。

那么如何取消订阅这项贴心服务呢?首先要明确我们的目标和现有情况之间的矛盾点。显而易见,我们希望的是:阻止首页的直播自动播放。这个阻止可以有很多种达成方式,比如将播放器所在的HTML元素直接删除、对特定网络协议或请求进行拦截、删除某个自动播放所依赖的关键函数等等。而具体实现方式的选择则与相应的工程量、操作难易程度和效果直接相关。

为了选出最佳的方案,笔者在相应的页面打开F12开发人员工具,切换到“网络”一栏,对页面的整体加载和网络请求情况进行初步探索。可以看出,主页的网络请求与直播房间的请求有很多相似点,都有加载HTML+CSS+依赖JS等元素、WSS建立连接、不断发起Fetch请求获取直播流等操作。也就是说,我们可以大概理解为:B站的首页自动播放≈加载首页框架+自动打开一个直播房间并进行小窗观看。

F12开发人员工具-网络-截图

明确了整个加载流程,我们就可以选出最能事半功倍的方法了:只要破坏上述环节中的任意一项,就可以达成目标。但我们又要尽可能减小操作难度、降低设备资源的浪费,为此单独写一份JS脚本+挂载油猴之类的方案似乎有些小题大做,而且如果以后再次遇到类似的案例,管理脚本又是一份“额外功”。那么应该选择什么方法呢?

回到上图中,仔细观察网络请求,一个名为home-player.min.js的文件请求似乎格外突出。从名字可以看出,这应该是首页的播放器本体。而他的加载位置居首,如果能将它直接拦截,后续的加载流程就可以直接省略,从而最大程度节约设备的资源。

说干就干。将这行请求右键,复制其URL到Adblock的自定义规则中,再启用规则,刷新直播首页,可以看到首页播放器区域已经不再加载直播内容。

Adblock的自定义过滤规则
拦截成功

方便大家操作,这里直接贴出相应的URL。笔者亲测发现,只添加第一条规则就可以,但为了保险起见,还是多添加一点为妙~

s1.hdslb.com/bfs/live-pkg/live-web-player/home-player.min.js

s1.hdslb.com/bfs/blive-engineer/live-web-player/home-player.min.js


至此问题解决。心情舒畅的同时,不知为何,又有点惆怅......

B站Web端直播分区首页自动播放?一行过滤规则解决问题的评论 (共 条)

分享到微博请遵守国家法律