Bilibili 直播间无法获取小心心排查
最近发现在直播间挂机的时候无法获取小心心,而不久之前还能正常获取。
第一反应是最近安装的油猴脚本问题,尝试禁用所有脚本,依然无法获取小心心。
转而考虑是否是 uBlock 屏蔽规则的问题,尝试直接禁用 uBlock,恢复正常。但简单粗暴禁用肯定是不可取的,于是就开始了排查之路。
排查过程
-
打开 uBlock 弹出界面,可以看到被屏蔽的请求域名。其中
data.bilibili.com
和live-trace.bilibili.com
标红了,表示这两个域名下的请求都被屏蔽,优先怀疑这两个域名。 -
点击灰色按钮为这两个域名创建 noop 规则,但刷新页面后发现这两个域名下的请求依然被屏蔽。
-
具体原因是,上述方法会创建两条动态规则:
live.bilibili.com data.bilibili.com * noop live.bilibili.com live-trace.bilibili.com * noop
而通过 uBlock 记录器可以看到,屏蔽这两个域名的规则是来自 EasyPrivacy 的静态规则。
根据 uBlock 给出的说明,noop 规则无法覆盖静态规则,所以需要将 noop 规则提升为 allow 规则。
-
打开 uBlock 控制面板 -> 自定义动态规则,在右侧的临时规则里可以看到刚刚创建的两条规则。手动修改其中的
noop
为allow
。live.bilibili.com data.bilibili.com * allow live.bilibili.com live-trace.bilibili.com * allow
-
刷新页面,发现已经恢复正常。
进一步排查,定位到
https://live-trace.bilibili.com/xlive/data-interface
这个接口才是获取小心心的关键。所以将上述规则更新如下:live.bilibili.com https://live-trace.bilibili.com/xlive/data-interface * allow
保存刷新,确认没有问题后将临时规则提交到永久规则。
后记
无法确认到 EasyPrivacy 添加这条规则的具体时间,曾考虑向维护方反馈移除或添加例外,但该接口的上报行为确实可以看作是隐私收集行为,所以最后还是通过添加本地规则来允许。
二〇二二年五月十一日