这是什么
虎牙直播间右侧那个「主播优选」悬浮广告卡片,常见做法是写个脚本定时去点它的 ×。
本脚本不点 ×。 它让这个广告根本不生成。
原理(四层拦截)
实测确认:虎牙所有悬浮广告都不是主页面渲染的,而是由「虎牙小程序中台」SDK(
window.HyExtComp)拉取下发,用 *.ext.huya.com 域下的小程序 iframe 承载,
比如「电商直播弹窗」「lol赛事助手」这一类。所以只需要卡在源头:
| 层级 |
做法 |
效果 |
| ① 源头断根 |
抢先占住 window.HyExtComp 的 setter,把真实实现换成 getSharedInstance() 永不 resolve 的空壳 |
getProfileExtList → showPanel / loadPopup 全部停在原地,广告数据拿不到,卡片从未被创建 |
| ② 网络兜底 |
劫持 HTMLIFrameElement.prototype.src 与 setAttribute,*.ext.huya.com 的 iframe 一律不设 src |
就算 SDK 绕过,弹窗 iframe 也加载不出来 |
| ③ 广告视频 |
播放器内插播的广点通(gdt)广告视频自动静音并快进到底 |
不再被迫看完十几秒广告 |
| ④ DOM 兜底 |
MutationObserver + 定时扫描,漏网的「主播优选」卡片整块 remove() |
文案匹配,不依赖类名,虎牙改版照样有效 |
效果实测
headless Chromium 对比同一房间:
|
ext.huya.com 请求数 |
直播画面 |
弹幕 |
| 无脚本 |
27 |
正常 |
正常 |
| 有脚本 |
0 |
正常 |
正常 |
直播播放、弹幕列表、页面导航均不受影响。
使用方法
- 安装 ScriptCat(或 Tampermonkey)扩展
- 安装本脚本,打开虎牙直播间即可,无需任何配置
⚠️ 因为要在页面脚本执行前抢占 SDK,本脚本使用 @run-at document-start。
如果你之前装过 v1.0 的「自动点击」版本,请先卸载,避免两条逻辑打架。
自定义开关
脚本顶部 CFG 可按需关闭某一层:
const CFG = {
killHyExtComp: true, // 废掉小程序中台
killExtIframe: true, // 拦截 ext 弹窗 iframe
killGdtVideo: true, // 广点通广告视频静音快进
domSweep: true, // DOM 兜底清扫
log: false // 改成 true 可在控制台看拦截日志
};
已知说明
- 若某天你想正常使用虎牙小程序(赛事助手、上电视等),把
killHyExtComp 设为 false 即可,那些小程序会回来,广告也可能跟着回来。
- 只作用于
www.huya.com 与 hd.huya.com。
更新日志
见下方「更新日志」。