VideoAdGuard 是一个基于大语言模型的B站视频植入广告检测工具,能够自动识别B站视频中的植入广告内容,并提供跳过广告的功能。
如果你觉得这个插件有用,请给项目点个Star⭐支持一下!
- v1.4.0 新增云端缓存功能,支持社区共享检测结果和用户反馈
- v1.3.0 重构LLM模块,支持更多模型,包括Coding Plan
- v1.2.9~v1.2.11 添加手动控制广告区间,修复已知bug
- v1.2.8 提供Groq代理服务
- v1.2.7 适配Firefox浏览器
- v1.2.6 支持 glm-4.5 系列模型,适配 Chrome浏览器
- v1.2.5 优化缓存机制;优化av号处理
- v1.2.4 新增限制模式,仅在有商品链接时进行识别;优化界面
- v1.2.3 新增音频识别功能,支持无字幕视频检测;新增广告检测结果缓存机制
- v1.2.2 新增关闭插件开关,优化界面,优化广告判断逻辑
- v1.2.1 支持自定义UP白名单
- v1.2.0 支持自动跳过
- v1.1.3 支持本地Ollama模型
- 🎯 精准识别:采用大语言模型分析视频字幕,准确定位植入广告内容
- 🎵 音频识别:支持无字幕视频的音频识别检测,使用免费的Groq服务商
- 🚀 便捷操作:检测到广告后自动显示跳过按钮,一键跳过广告片段
- 🔄 自动跳过:支持自动跳过已识别的广告内容
- 💾 智能缓存:本地缓存检测结果,大幅提升重复访问速度
- ☁️ 云端缓存:社区共享检测结果,AI检测前优先查询云端缓存加速
- 🌈 广泛兼容:支持多种主流浏览器,包括Edge、Chrome等
- ⚙️ 灵活定制:支持多种AI模型接入,包括智谱AI、OpenAI、DeepSeek等
- 🏠 本地部署:支持本地Ollama模型,保护隐私数据
点击上方对应浏览器的图标即可下载安装:
- Edge浏览器:Edge插件下载
- Chrome浏览器:Chrome插件下载
- Firefox浏览器:Firefox插件下载
注意:油猴版本由于功能限制后续不维护,chromium内核浏览器推荐采用插件版
- 安装篡改猴插件
- 从GreasyFork安装脚本
-
浏览器插件版:安装完成后,点击插件图标完成设置
-
油猴脚本版:安装完成后,进入B站视频页面,点击右下角齿轮图标进行设置
-
设置API密钥和模型(详见下方API设置说明)
-
打开任意带有字幕的B站视频,插件会自动检测广告内容
-
当检测到广告时,会在视频播放器右下角显示"跳过广告"按钮
插件提供丰富的交互功能,帮你完善社区检测结果:
- 跳过广告按钮:点击可跳过当前广告片段
- 交互式标记层:视频进度条上会显示广告区间(红色标记)
- 点击:切换该段广告的激活/暂停状态
- 拖拽边缘:调整该段广告的起止时间
- 拖拽中间:移动整个广告段的位置
- 反馈按钮:广告检测完成后,右下角会显示 ✗ 按钮
- 直接点击(无手动调整):标记为"不准确",下次访问将重新检测
- 手动调整广告区间后点击:提交你的修正结果,云端共享给其他用户
📌 你的每一次反馈都在帮助社区提升检测准确率,感谢参与!
本插件需要配置大语言模型API才能正常工作。检测能力与大模型能力强相关,推荐使用性能更强的大模型。
插件支持多种SDK接入方式,可在设置页面中选择:
- OpenAI 兼容:适用于 OpenAI、智谱AI、MiniMax、Kimi、DeepSeek、硅基流动、阿里云百炼、火山方舟、阶跃星辰、百度千帆、302.AI 等
- Anthropic 兼容:适用于 Claude、智谱AI、MiniMax 等
- 自定义 Fetch:适用于 Ollama、LM Studio、vLLM 等本地模型
设置页面提供多平台预设,一键配置即可使用。
| SDK类型 | 支持平台 |
|---|---|
| OpenAI 兼容 | 智谱AI、MiniMax、Kimi、DeepSeek、硅基流动、OpenRouter、OpenAI、Gemini、Grok、腾讯混元、阿里云百炼、火山方舟、阶跃星辰、百度千帆、302.AI、Requesty API 等 |
| Anthropic 兼容 | Claude、智谱AI、MiniMax、腾讯云、阿里云、火山引擎、百度千帆 等 |
| 自定义 Fetch | Ollama、LM Studio、vLLM、llama.cpp、LocalAI、Xinference、FastChat、Jan、One API 等 |
注意:使用本地模型时,如遇跨域问题,需设置环境变量,如
OLLAMA_ORIGINS = *
- 用途:用于无字幕视频的音频识别功能
- 推荐服务:目前只支持Groq(免费Whisper模型)
- API密钥获取:在Groq平台注册并获取
- 注意:如果要使用Groq API,需要特殊网络环境,也可勾选“官方接口失败时使用代理”走我的反代
- 字幕检测:优先使用视频字幕进行检测,准确度更高
- 音频识别:无字幕视频将自动启用音频识别功能
- API配置:需要配置大语言模型API密钥,模型能力越强,检测效果越好
- 音频识别API:使用音频识别功能需要额外配置Groq API密钥
- 费用提醒:使用付费API时请注意token消耗和音频识别费用
- 缓存机制:检测结果会自动缓存24小时,提升重复访问速度
- 调试信息:众多调试信息会在控制台输出,遇到错误时可以查看控制台
VideoAdGuard通过以下步骤检测视频中的植入广告
- 获取视频字幕内容(如无字幕则启用音频识别)
- 提取视频标题和置顶评论
- 优先查询缓存:先查本地缓存(24h),再并行查云端缓存
- 如云端命中,直接使用云端结果;否则调用大语言模型分析
- 将数据发送给大语言模型进行分析
- 根据分析结果确定广告时间段
- 缓存检测结果到本地和云端
- 在界面上显示跳过按钮和交互式标记层
- 本地缓存:检测结果自动缓存24小时,避免重复分析
- 云端缓存(可选):社区共享检测结果,AI检测前优先查询云端
- 每个视频仅维护一条记录:
ad:{bvid} accuracy: 'accurate'的记录可被查询使用- 用户标记"不准确"后该记录查询时被跳过,下次访问将重新AI检测
- 用户提交修正后记录为
source: 'user',可供他人使用
- 每个视频仅维护一条记录:
- 云端服务异常时静默降级,不影响本地检测能力
- 当视频无字幕时,自动下载视频音频流
- 使用Groq Whisper API进行语音识别
- 将识别结果转换为文本格式
- 后续流程与字幕检测模式相同
VideoAdGuard
├── builds/ # 构建产物(按浏览器区分)
│ ├── chrome/ # Chrome 打包目录
│ └── firefox/ # Firefox 打包目录
├── src/ # 源代码目录
│ ├── background.ts # 后台脚本(跨域代理)
│ ├── content.ts # 内容脚本(广告检测逻辑)
│ ├── popup.ts/.html # 弹窗设置界面
│ ├── services/ # 业务逻辑
│ │ ├── ai.ts # AI 检测提示词与解析
│ │ ├── bilibili.ts # B站 API 客户端
│ │ ├── cache.ts # 本地缓存服务(24h TTL)
│ │ ├── cloud-cache.ts # 云端缓存服务(Cloudflare KV)
│ │ ├── whitelist.ts # UP主白名单
│ │ ├── audio.ts # 音频识别(浏览器适配)
│ │ └── llm/ # LLM 提供商抽象
│ │ ├── config.ts # 提供商解析
│ │ ├── providers.ts # OpenAI/Anthropic/Custom Fetch
│ │ └── types.ts # LLM 类型定义
│ ├── utils/ # 工具函数
│ │ ├── wbi.ts # B站 WBI 签名
│ │ ├── errors.ts # 错误规范化
│ │ └── logger.ts # 日志工具
│ └── types/ # TypeScript 类型定义
│ └── cloud-cache.ts # 云端缓存类型定义
├── worker/ # Cloudflare Worker(云端缓存网关)
│ ├── src/index.ts # Worker 入口,API 路由
│ ├── wrangler.toml # Worker 配置
│ ├── package.json # Worker 依赖
│ └── README.md # 部署文档
├── manifests/ # 浏览器清单文件
│ ├── manifest-chrome.json # Chrome 清单
│ └── manifest-firefox.json # Firefox 清单
├── _locales/ # i18n 资源
├── icons/ # 插件图标资源
├── scripts/ # 构建脚本
├── VideoAdGuard.Tampermonkey.js # 油猴脚本版本(已停止维护)
├── webpack.config.js # Webpack 构建配置
├── tsconfig.json # TypeScript 配置
├── package.json # 项目依赖与脚本
├── CLAUDE.md # Claude Code 指南
├── LICENSE # 开源许可证
└── README.md # 项目说明文档
如果你想自行构建VideoAdGuard,可以按照以下步骤进行:
- 克隆本仓库到本地:
git clone https://github.com/Warma10032/VideoAdGuard.git cd VideoAdGuard - 安装依赖:
npm install
- 构建插件:
npm run build
本项目完全开源,欢迎贡献代码和提出建议:
- GitHub仓库:https://github.com/Warma10032/VideoAdGuard
- 问题反馈:GitHub Issues
- 如遇任何插件不起作用问题,在提出Issues同时,附上浏览器(F12)控制台的错误日志/截图,以便我们更好地帮助你。
本插件仅用于学习和研究目的,不得用于任何商业或非法用途。使用本插件所产生的一切后果,与作者和插件开发者无关。
本项目采用GPLv2许可证开源。


