资讯动态

RemoveAdblockThing 实战指南:用油猴脚本移除 YouTube “广告拦截器不受允许“ 弹窗

发布时间:2026/10/15 20:54:10 来源:尧图企业网站定制
浏览器控制【免费下载链接】RemoveAdblockThingThe intrusive Ad blocker are not allowed on YouTube message is annoying. This open-source project aims to address this issue by providing a solution to bypass YouTubes ad blocker detection项目地址https://gitcode.com/gh_mirrors/re/RemoveAdblockThing点击查看免费下载导读本文围绕开源项目 RemoveAdblockThing 的官方文档 README.md 展开系统讲解其核心交付物——用户脚本 Youtube-Ad-blocker-Reminder-Remover.user.js——的安装步骤、配置项含义与源码级实现原理。读完本文你将掌握如何在 Tampermonkey 中部署该脚本、通过adblocker/removePopup等开关按需启用两种去广告策略并能对照源码理解iframe 播放器替换与CSS 页面广告屏蔽的底层工作机制同时具备独立排查黑屏/违规弹窗类常见问题的能力。一、项目定位这个用户脚本解决什么问题YouTube 自 2023 年起加强了对广告拦截器的检测在检测到拦截行为时会弹出 Ad blocker is not allowed on Youtube广告拦截器在 YouTube 上不受允许的强制提示弹窗甚至直接限制视频播放。RemoveAdblockThing 正是针对这一痛点诞生的开源用户脚本项目其 README 明确给出了两条技术路线移除拦截提示弹窗脚本主动识别并清理 YouTube 页面上的拦截警告弹窗无痕去广告方案undetected adblocker当你的视频播放器因广告拦截被禁用时脚本会用一种不易被检测的方式继续观看视频——这一点在 README.md 的 Introduction 中被明确描述为We also have an undetected way of skipping ads if you get blocked from the video player其实现细节见下文源码拆解。脚本通过 UserScript 元数据中的match https://www.youtube.com/*脚本第 7 行限定运行范围仅在 YouTube 域名下生效当前仓库版本为5.5第 4 行。二、快速安装从浏览器到脚本的完整流程README 将安装过程归纳为 4 个步骤前两步解决运行载体与脚本来源后两步解决启用与冲突规避。第 1 步安装 Tampermonkey 浏览器扩展Tampermonkey油猴是承载用户脚本的浏览器扩展README 列出了主流浏览器对应的官方分发渠道按浏览器选择安装即可浏览器获取渠道ChromeChrome 网上应用店Web StoreFirefoxFirefox 附加组件AMOEdgeMicrosoft Edge 加载项Opera / Opera GXOpera 插件商店Tampermonkey Beta说明本文按规范不展开输出外部商店链接具体地址可在 README 的 Installation 一节中直接查看。第 2 步安装脚本本体脚本文件为仓库根目录下的 Youtube-Ad-blocker-Reminder-Remover.user.js。打开该文件的raw原始文本版本后Tampermonkey 会自动识别文件头部的// UserScript元数据块并弹出脚本安装确认页点击Install即可完成安装。脚本头部的元数据声明第 1-12 行定义了脚本的身份与行为边界// UserScript // name Remove Adblock Thing // namespace http://tampermonkey.net/ // version 5.5 // description Removes Adblock Thing // author JoelMatic // match https://www.youtube.com/* // icon https://www.google.com/s2/favicons?sz64domainyoutube.com // updateURL https://github.com/TheRealJoelmatic/RemoveAdblockThing/raw/main/Youtube-Ad-blocker-Reminder-Remover.user.js // downloadURL https://github.com/TheRealJoelmatic/RemoveAdblockThing/raw/main/Youtube-Ad-blocker-Reminder-Remover.user.js // grant none // /UserScript其中几个关键字段值得留意match https://www.youtube.com/*限定仅在 YouTube 域名及其子路径下运行updateURL/downloadURL指向上游仓库的 raw 发布地址供 Tampermonkey 周期性自动检测并拉取新版本grant none声明脚本无需额外的 GM_* 高级权限即可运行主要依赖标准 DOM API。第 3 步在 Tampermonkey 控制面板启用脚本打开 Tampermonkey 面板Dashboard在脚本列表中找到Remove Adblock Thing点击其右侧的开关使其处于开启状态。若脚本未显示在列表中说明第 2 步的安装未成功可回到 raw 页面重新安装。第 4 步关闭或放行其他广告拦截器关键README 特别强调安装脚本后需要在你使用的其他广告拦截软件中把 YouTube 加入白名单或直接关闭。原因在于脚本自身已经承担了去广告职责如果浏览器里同时存在其他广告拦截器扩展、内置拦截、DNS 过滤等YouTube 的拦截检测依然会被触发导致弹窗或黑屏。README 原话为Dont worry; our script removes ads on YouTube。附加收益README 在安装章节末尾补充说明该脚本还能在你的视频播放器因使用广告拦截而被禁用时让你继续正常观看视频——这正是第一节提到的无痕去广告方案的实战场景。三、脚本配置详解读懂 config 区的 5 组开关脚本的 config 配置区 位于 IIFE 顶部以常量形式暴露全部可调参数。修改方式为直接编辑脚本源码中的对应行并保存Tampermonkey 会自动应用新版本。// Enable The Undetected Adblocker const adblocker true; // Enable The Popup remover (pointless if you have the Undetected Adblocker) const removePopup false; // Checks for updates (Removes the popup) const updateCheck true; // Enable debug messages into the console const debugMessages true; // Enable custom modal // Uses SweetAlert2 library (https://cdn.jsdelivr.net/npm/sweetalert211) for the update version modal. // When set to false, the default window popup will be used. And the library will not be loaded. const updateModal { enable: true, // if true, replaces default window popup with a custom modal timer: 5000, // timer: number | false };各配置项的完整含义与默认值汇总如下配置项默认值作用说明adblockertrue启用无痕广告拦截方案将 YouTube 原生播放器替换为youtube-nocookie.com嵌入 iframe从根源上避开拦截检测详见下文removeAds()removePopupfalse启用弹窗移除器轮询删除拦截警告弹窗。源码注释明确指出在adblocker已开启时该功能无意义pointless因此默认关闭updateChecktrue启用启动时更新检查脚本会拉取上游最新版本并比对版本号发现新版本时弹出提示README 中提及该行为附带移除弹窗的说明debugMessagestrue是否向浏览器控制台输出带前缀的调试日志设为false可关闭所有日志输出updateModal.enabletrue是否使用 SweetAlert2 库渲染自定义更新弹窗false时退回浏览器原生window.confirm弹窗且不再加载 SweetAlert2 库updateModal.timer5000更新弹窗的自动关闭倒计时毫秒支持传入false禁用自动关闭配置区的生效逻辑在 Setup 段 中体现得十分直白log(Script started); if (adblocker) removeAds(); if (removePopup) popupRemover(); if (updateCheck) checkForUpdate();也就是说三个功能开关各自对应一个独立函数互不依赖日常使用建议保持默认值adblockertrue、removePopupfalse仅在需要排查问题或切换更新提示样式时才调整debugMessages与updateModal。四、核心实现原理从源码拆解三条技术路径这一节结合脚本完整源码411 行逐条剖析其工作机制方便你理解脚本为什么这样配置以及如何被检测/如何生效。4.1removeAds()无痕广告拦截的 iframe 替换流程removeAds()第 117-213 行是默认开启的主路径核心思路是用 YouTube 官方提供的无痕域名嵌入播放器替换掉会触发广告拦截检测的原生播放器。其完整执行流程如下每 500ms 轮询一次检查window.location.href是否变化第 121-128 行。YouTube 是单页应用切换视频不会刷新页面因此脚本在检测到 URL 变化时会将isVideoPlayerModified复位并重新执行clearAllPlayers()与removePageAds()保证新视频同样被处理处理原生 video 元素第 140-143 行将页面上的video静音、暂停并移除避免原生播放器继续加载广告流清空现有播放器调用clearAllPlayers()见 4.2从 URL 提取 videoID第 157-175 行以https://www.youtube.com/watch?v为基准截取其后缀并截断之后的所有查询参数得到纯视频 ID构造无痕嵌入地址并注入 iframe第 183-207 行const startOfUrl https://www.youtube-nocookie.com/embed/; const endOfUrl ?autoplay1modestbranding1; const finalUrl startOfUrl videoID endOfUrl; const iframe document.createElement(iframe); iframe.setAttribute(src, finalUrl); iframe.setAttribute(frameborder, 0); iframe.setAttribute(allow, accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share); iframe.setAttribute(allowfullscreen, true); iframe.setAttribute(mozallowfullscreen, mozallowfullscreen); iframe.setAttribute(msallowfullscreen, msallowfullscreen); iframe.setAttribute(oallowfullscreen, oallowfullscreen); iframe.setAttribute(webkitallowfullscreen, webkitallowfullscreen); iframe.style.width 100%; iframe.style.height 100%; iframe.style.position absolute; iframe.style.top 0; iframe.style.left 0; iframe.style.zIndex 9999; iframe.style.pointerEvents all; const videoPlayerElement document.querySelector(.html5-video-player); videoPlayerElement.appendChild(iframe);要点解读youtube-nocookie.com是 YouTube 官方的无 Cookie嵌入域名embed播放器走的是独立于网页主体的 iframe 环境与主页面上的广告拦截检测逻辑相互隔离——这正是该项目将其命名为undetected adblocker method第 116 行注释的原因查询参数autoplay1让嵌入播放器自动播放modestbranding1隐藏 YouTube 水印品牌标识全屏兼容allowfullscreen搭配mozallowfullscreen/msallowfullscreen/webkitallowfullscreen等历史属性兼容 Firefox、IE、Opera、WebKit 内核样式覆盖iframe 绝对定位铺满父容器并置于zIndex: 9999视觉上与原生播放器无差别挂载点iframe 被追加到.html5-video-playerYouTube 的 HTML5 播放器容器内部因此页面布局、倍速控制等外部 UI 不受影响。4.2clearAllPlayers()与removePageAds()清理与页面广告屏蔽clearAllPlayers()第 218-236 行负责移除所有.html5-video-player容器内已存在的 iframe。若页面中根本找不到该容器函数返回false此时removeAds()会提前 return第 149-151 行避免在空容器上盲目操作。removePageAds()第 239-287 行处理的是视频播放器之外的页面级广告推荐流广告、横幅、赞助位等手段是向head注入一段隐藏这些广告节点的全局 CSSconst style document.createElement(style); style.textContent ytd-action-companion-ad-renderer, ytd-display-ad-renderer, ytd-video-masthead-ad-advertiser-info-renderer, ytd-video-masthead-ad-primary-video-renderer, ytd-in-feed-ad-layout-renderer, ytd-ad-slot-renderer, yt-about-this-ad-renderer, yt-mealbar-promo-renderer, ytd-statement-banner-renderer, ytd-ad-slot-renderer, ytd-in-feed-ad-layout-renderer, ytd-banner-promo-renderer-background statement-banner-style-type-compact, .ytd-video-masthead-ad-v3-renderer, div#root.style-scope.ytd-display-ad-renderer.yt-simple-endpoint, div#sparkles-container.style-scope.ytd-promoted-sparkles-web-renderer, div#main-container.style-scope.ytd-promoted-video-renderer, div#player-ads.style-scope.ytd-watch-flexy, ad-slot-renderer, ytm-promoted-sparkles-web-renderer, masthead-ad, tp-yt-iron-overlay-backdrop, #masthead-ad { display: none !important; } ; document.head.appendChild(style);该选择器清单几乎覆盖了 YouTube 现行的全部广告渲染器ytd-*/ytm-*系列 Web Components 标签并以display: none !important强制隐藏。此外函数还会对div#player-ads与div#panels中 id 为rendering-content的赞助内容逐个子节点做二次清理同时跳过章节Chapters面板第 278-282 行避免误删正常的章节功能。4.3popupRemover()传统弹窗移除路径当removePopup被改为true时启用第 78-115 行实现方式是对抗式 DOM 清理每 1000ms 轮询一次页面移除tp-yt-iron-overlay-backdropMaterial 弹窗遮罩层的opened属性并整体删除节点定位ytd-enforcement-message-view-model拦截警告弹窗主体先点击#dismiss-button关闭按钮再删除弹窗节点强制恢复body的overflow-y: auto解锁被弹窗锁定的页面滚动删除弹窗后主动调用video.play()恢复播放并在 500ms 后再次补一次play()第 103-105 行兜底若轮询发现视频仍处于暂停态也会再次触发播放第 110-112 行。由于该方案本质是先被检测、再被动清理README 与源码注释均提示在默认开启无痕方案adblockertrue的情况下removePopup属于冗余路径。4.4checkForUpdate()与updateModal自更新机制脚本默认开启updateCheck其逻辑位于 第 293-386 行防重入保护若页面处于 iframe 内且非 YouTube 域名或本次会话已忽略过更新hasIgnoredUpdate直接返回拉取上游脚本通过fetch获取项目仓库 raw 地址上的最新脚本文本版本比对用正则/version\s(\d\.\d)/解析出上游版本号与本地GM_info.script.version即当前安装的 5.5做数值比较上游不大于本地时仅记录日志弹窗提醒发现新版本后若updateModal.enable为true动态加载 jsDelivr CDN 上的 SweetAlert2 v11 库并弹出三按钮弹窗Update / Skip / Closetimer: 5000提供 5 秒自动倒计时鼠标悬停可暂停计时didOpen回调中绑定mouseenter/mouseleave点击Updatewindow.location.replace(scriptUrl)跳转到上游脚本地址触发 Tampermonkey 安装点击Skip将本次版本号写入localStorage的skipRemoveAdblockThingVersion键同一版本不再重复打扰SweetAlert2 加载失败时自动降级为原生window.confirm降级路径若updateModal.enable为false直接使用原生window.confirm同时不再加载 SweetAlert2 库避免多余网络请求。4.5log()可关闭的调试输出log 函数 统一了全部调试输出日志统一加前缀 Remove Adblock Thing:并根据第二个参数映射到console.error/console.log/console.warn/console.info当debugMessages为false时所有输出被整体禁用。排障时可临时开启该开关观察控制台中Video replacement started!、Video ID:、Finished、Removed page ads (✔️)等标记即可判断脚本各阶段是否按预期执行。五、常见问题排查弹窗残留与黑屏的 5 大根源README 的 Common Issues 章节指出若仍出现Ad Blockers violate Youtube Terms Of Service广告拦截器违反 YouTube 服务条款提示或纯黑屏通常意味着页面上还存在脚本之外的其他广告拦截因素。按 README 列出的清单逐项排查排查项处理方式广告拦截扩展在 Adblock、uBlock Origin 等扩展中把 YouTube 加入白名单或直接禁用浏览器内置广告拦截部分浏览器自带拦截功能进入浏览器设置中关闭或对 YouTube 配置白名单其他油猴脚本冲突例如 YouTube Enhancer 等脚本可能与本脚本产生 DOM 冲突逐个停用其他脚本以定位冲突源Wi-Fi / DNS / 防火墙拦截规则检查路由器、运营商 DNS 或防火墙中是否存在域名级广告过滤规则这些规则同样会触发 YouTube 检测Windows hosts 文件规则检查C:\Windows\System32\drivers\etc下的 hosts 文件删除其中针对 YouTube 相关域名的屏蔽条目排查原则是从浏览器内到浏览器外、从软件到系统逐层收窄先停用全部扩展与脚本若恢复正常再逐个启用若仍未恢复再转向 DNS 与 hosts 等系统层。六、参与贡献与许可报告问题仓库提供了规范的 Bug 报告模板提交 issue 时需包含脚本版本号如 2.9、3.1、5.5、Bug 描述、预期行为、截图/录屏、桌面环境信息操作系统、浏览器、浏览器版本以及附加上下文。按模板填写可显著提高问题定位效率功能建议则直接通过 issue 或 Pull Request 提交。开源许可项目采用 MIT License 授权Copyright (c) 2023 Joelmatic允许自由使用、修改、分发需保留版权与许可声明且作者不对软件提供任何明示或默示的担保。七、小结RemoveAdblockThing 通过一个结构清晰的用户脚本为 YouTube 广告拦截检测提供了弹窗清理与播放器替换双保险方案。理解其 config 配置区 的 6 个开关即可按需组合出最适合自己的运行形态掌握removeAds()的 iframe 替换流程、removePageAds()的 CSS 屏蔽清单与popupRemover()的 DOM 清理逻辑则能在 YouTube 前端迭代导致脚本失效时快速定位问题并按上述排查表处理。需要提醒的是YouTube 的检测机制与页面结构会持续变化脚本的有效性取决于前端实现的当前形态使用时应关注上游仓库的版本更新updateURL机制会自动提示并及时同步新版本。赞分享浏览器控制【免费下载链接】RemoveAdblockThingThe intrusive Ad blocker are not allowed on YouTube message is annoying. This open-source project aims to address this issue by providing a solution to bypass YouTubes ad blocker detection项目地址https://gitcode.com/gh_mirrors/re/RemoveAdblockThing点击查看免费下载相关推荐RemoveAdblockThing终极YouTube广告拦截器检测绕过工具RemoveAdblockThing终极YouTube广告拦截器检测绕过工具 你是否曾经在使用广告拦截器观看YouTube视频时突然被强制暂停并看到Ad浏览器控制drawsvg与Cairo集成实现SVG转PNG/MP4/GIF的完整部署指南drawsvg与Cairo集成实现SVG转PNG/MP4/GIF的完整部署指南 drawsvg是一款强大的SVG矢量图生成工具能够通过编程方式创建SVG图像上一篇Blazor Server 多语言实战基于 PO 文件Portable Object的本地化与语言切换——practical-aspnetcore Localization-2 示例深度解析下一篇终极Windows部署革命一键搞定TPM限制与多语言安装的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑