如何用一款 1.99 美元的 Safari 插件屏蔽 YouTube 首页的 AI 标记视频

PromptCube 中级 2026/9/2 177 浏览 9 点赞 约 2 分钟

在浏览 YouTube 首页信息流时,我注意到平台虽然为 AI 生成内容贴上了 "Made with AI" 标签,却缺乏原生的过滤选项。在研究了 Weedout 插件的实现思路后,我梳理了一套基于官方标签的本地屏蔽方案,目的就是通过前端拦截直接移除低质量内容。

技术实现路线是什么?

该方案的核心逻辑并非通过机器学习辨识视频特征,而是直接抓取 YouTube 官方在 DOM 树中注入的特定标签。只要页面元素出现该标签,便立即通过 CSS 或 JS 将对应的视频节点设置为 <code>display: none</code>。

这套方案的优势在于:

  • 准确率高:依赖平台层面的判定,避免了误判。
  • 低延迟:在本地运行,拦截速度在毫秒级,无需请求后端 API。
  • 隐私性:数据不上传第三方服务器。

具体开发实操如何进行?

如何应对SPA动态加载?

如果我想实现类似的功能,需要关注 YouTube 页面的动态加载机制。由于 YouTube 是单页应用(SPA),内容是通过 AJAX 异步加载的,简单的 <code>window.onload</code> 无法生效。

实操步骤:

  1. 监听 DOM 变化:使用 <code>MutationObserver</code> 实时监听 <code>#contents</code> 或 <code>ytd-rich-grid-renderer</code> 等容器节点的变动。
  2. 匹配标签元素:在观察到的新节点中,搜索包含 "Made with AI" 文本的特定类名元素。
  3. 执行删除操作:找到目标标签后,向上溯源至最近的视频容器节点(如 <code>ytd-rich-item-renderer</code>),然后将其隐藏。

参考伪代码逻辑:

<pre><code>
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
mutation.addedNodes.forEach((node) => {
if (node.nodeType === 1 && node.innerText.includes('Made with AI')) {
const videoCard = node.closest('ytd-rich-item-renderer');
if (videoCard) videoCard.style.display = 'none';
}
});
});
});

observer.observe(document.body, { childList: true, subtree: true });
</code></pre>

在实际部署中遇到了哪些坑?

在尝试实现过程中,我记录了以下几个关键的技术细节和局限性:

类名失效时如何兜底?

  • 选择器失效:YouTube 的 CSS 类名经常随机化或更新,依赖类名(Class Name)过滤容易导致插件失效,建议优先使用 <code>innerText</code> 或 <code>aria-label</code> 进行文本匹配。
  • 性能损耗:<code>MutationObserver</code> 如果监听范围过大(如 <code>document.body</code>),在滚动页面时可能会产生性能抖动。建议缩小监听范围至具体的视频流容器。
  • 拦截盲区:这是一个纯粹的“标签过滤器”。如果视频创作者通过手段绕过了官方检测,或者 YouTube 尚未对该视频打标,那么该逻辑无法拦截这些内容。

如何快速部署现有方案?

对于不想从零开发、需要快速验证效果的 macOS 用户,可以使用 Safari 插件 Weedout(版本 1.x)。

部署流程:

如何快速验证过滤效果?

  1. 在 Safari App Store 搜索并安装 Weedout(定价 1.99 美元)。
  2. 在 Safari 偏好设置中启用该扩展。
  3. 刷新 YouTube 首页,验证 "Made with AI" 标签的视频是否被实时抹除。

如果需要进行二次开发,可以直接 Fork 其开源仓库 <code>weedout-for-youtube</code>,通过修改过滤关键词或增加自定义 CSS 规则来扩展过滤维度。

youtubeSafariWeedout

全部回复 (4)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

全
全栈小李 高级 2026/9/2

1.99刀买个清净太值了,只要能把那些离谱的 AI 推荐刷掉我就冲——关键是监听 #contents 或 ytd-rich-grid-renderer 等容器节点的变动,实时隐藏所有带有 "Made with AI" 标签的视频。

0 回复
自
自由职业运营喵 高级 2026/9/2

手动划走太累了,只要这个插件能精准拦截阴谋论,哪怕 2 刀我也买!不过既然 YouTube 官方已经在视频元素中注入了 “Made with AI” 标签,我们完全可以 直接利用 MutationObserver 实时监听 DOM 变化,在视频容器节点(如 #contents 或 ytd-rich-grid-renderer)中搜索包含该标签的内容,并通过 CSS 隐藏对应的视频卡片。这样既不需要依赖后端 API,也能保证拦截速度快到毫秒级,而且完全在本地运行,隐私也无忧。

0 回复
老
老张在路上 中级 2026/9/2

这 1.99 刀花得值,终于不用在首页忍受那些 AI 阴谋论了,清爽得想哭!我注意到 YouTube 虽然为 AI 生成内容贴上了 "Made with AI" 标签,却缺乏原生的过滤选项。于是我研究了一下,发现可以通过直接抓取 YouTube 官方在 DOM 树中注入的特定标签来实现本地屏蔽。比如,可以用 MutationObserver 监听视频流容器的变动,然后在新节点中搜索包含 "Made with AI" 文本的元素,最后向上溯源至最近的视频容器节点,将其隐藏。这样既能保证准确率,又能提高拦截速度,完全不需要依赖第三方服务器。

0 回复
极
极客阿强 中级 2026/9/2

1.99刀买个心安,结果把我想看的技术频道全给屏蔽了,这插件的过滤逻辑也太粗糙吧。在浏览 YouTube 首页信息流时,我注意到平台虽然为 AI 生成内容贴上了 "Made with AI" 标签,却缺乏原生的过滤选项。在研究了 Weedout 插件的实现思路后,我梳理了一套基于官方标签的本地屏蔽方案,目的就是通过前端拦截直接移除低质量内容。具体开发实操如何进行?如果我想实现类似的功能,需要关注 YouTube 页面的动态加载机制。由于 YouTube 是单页应用(SPA),内容是通过 AJAX 异步加载的,简单的 <code>window.onload</code> 无法生效。实操步骤:1. 监听 DOM 变化:使用 <code>MutationObserver</code> 实时监听 <code>#contents</code> 或 <code>ytd-rich-grid-renderer</code> 等容器节点的变动。2. 匹配标签元素:在观察到的新节点中,搜索包含 "Made with AI" 文本的特定类名元素。3. 执行删除操作:找到目标标签后,向上溯源至最近的视频容器节点(如 <code>ytd-rich-item-renderer</code>),然后将其隐藏。参考伪代码逻辑:<pre><code> const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { mutation.addedNodes.forEach((node) => { if (node.nodeType === 1 && node.innerText.includes('Made with AI')) { const videoCard = node.closest('ytd-rich-item-renderer'); if (videoCard) videoCard.style.display = 'none'; } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); </code></pre>在实际部署中遇到了哪些坑?在尝试实现过程中,我记录了以下几个关键的技术细节和局限性:类名失效时如何兜底?选择器失效:YouTube 的 CSS 类名经常随机化或更新,依赖类名(Class Name)过滤容易导致插件失效,建议优先使用 <code>innerText</code> 或 <code>aria-label</code> 进行文本匹配。性能损耗:<code>MutationObserver</code> 如果监听范围过大(如 <code>document.body</code>),在滚动页面时可能会产生性能抖动。建议缩小监听范围至具体的视频流容器。拦截盲区:这是一个纯粹的“标签过滤器”。如果视频创作者通过手段绕过了官方检测,或者 YouTube 尚未对该视频打标,那么该逻辑无法拦截这些内容。

0 回复

发表回复

支持 Markdown 格式
这个方向的上手步骤与避坑记录见用Claude整理的AI副业教程,有不少直接可参考的案例。