善忘技术夹 Logo
善忘技术夹
善用佳软 开源/免费

YouTube最烦的中插广告,用10MB的工具自动跳过

CastSponsorSkip 项目主视觉

看 YouTube 的时候,最让人出戏的瞬间是什么?

不是开头那 5 秒可以跳过的贴片,是视频看到一半,博主突然话锋一转:「好了,今天的内容开始之前,先给大家推荐一款……」赞助片段就这么硬生生插进来了。

这种东西往往藏在视频的中段,你不知道它什么时候冒出来。想跳?拿起遥控器,按方向键、快进、再按方向键、再快进,来回好几次才能刚好跳过那 30 秒,还经常跳过头把正文也跳掉。广告更别提,有些压根不给你跳过按钮。

今天这个工具就专门解决这件事。它叫 CastSponsorSkip,Go 写的开源小程序,体积 10MB 出头,跑在家里任何一台常开的设备上,就能让你家所有 Chromecast、Google TV 设备看 YouTube 时自动跳过赞助片段和可跳广告。全程无感,你甚至感觉不到它存在。

一、它到底是个什么东西

CastSponsorSkip GitHub 仓库

先说清楚 CastSponsorSkip 解决的场景:家里有 Chromecast、Google TV 电视棒这类 Google Cast 设备,并且用它们看 YouTube。

如果你是用电脑浏览器看 YouTube,那直接装个 SponsorBlock 浏览器插件就够了,轮不到这个工具登场。但 Cast 设备不一样,它们是封闭系统,装不了浏览器插件,遥控器操作又笨重,传统的「跳过赞助」方案在电视上一直是空白。

CastSponsorSkip 填的就是这个空白。它不改装你的 Chromecast,不往设备里塞任何东西,而是跑在局域网的另一台机器上——NAS、软路由、树莓派、或者随便一台 Linux 小主机都行。它通过局域网去发现你家所有的 Cast 设备,盯着它们在播什么 YouTube 视频,等赞助片段的时间点一到,直接通过 Cast 协议让播放进度「嗖」地一下跳过去。

整个原理可以拆成三步:

CastSponsorSkip 工作原理:发现设备 → 查询 SponsorBlock → 自动跳过

  1. 发现设备:用 DNS/mDNS 协议在局域网里扫描,每 5 分钟重新扫一次,自动找到所有在线的 Cast 设备
  2. 查询赞助片段:发现某个设备在播 YouTube 视频后,拿着视频 ID 去 SponsorBlock 的数据库里查这个视频有没有被标记的赞助片段
  3. 自动跳过:播放进度到达赞助片段起点时,直接 seek 到片段末尾,跳过就这么完成了

SponsorBlock 是一个众包数据库,靠无数志愿者手动标记「这段是赞助、那段是 self promotion」,覆盖了海量的 YouTube 视频。CastSponsorSkip 本质上是把 SponsorBlock 的能力,从浏览器搬到了电视棒上。

二、几个让体验「无感」的设计

光知道原理还不够,真正让它好用的是几个细节。

自动发现,零配置接入新设备。 你不用一台台去配置 Chromecast 的 IP 地址。程序启动后自己扫局域网,新添置的 Cast 设备开机后自动被发现、自动纳入监控。作者在 README 里说自己家里有 12 台 Cast 设备,全靠这套机制管。家里电视多、电视棒多的,这一点很省心。

不只是赞助,广告也顺手处理了。 SponsorBlock 数据库主要标记赞助片段,但 YouTube 视频里还有真正的广告。CastSponsorSkip 会检测哪些广告可以跳过,等跳过按钮一出现就替你点掉;不能跳过的,它会在播放期间自动静音,广告结束再恢复声音。至少耳朵不受罪。

对资源占用抠到了极致。 这是我觉得最值得说的一点。它根据设备状态智能调整轮询频率:设备在播放视频时,每 500 毫秒查一次进度(保证跳过及时);设备暂停时,降到每 1 分钟查一次(省 CPU)。就这一个设计,让它整体 CPU 占用只有同类工具的零头。官方给了一组对比数据:

程序 CPU 占用 内存占用
sponsorblockcast(同类方案) 75m 70Mi
CastSponsorSkip 1m 10Mi

内存差了 7 倍,CPU 差了几十倍。你可以毫无压力地把它扔在 NAS 或者树莓派上 7×24 小时跑着,不用担心拖累其他服务。

隐私上也做了处理。 有人会担心:那我看的每个视频都被上报了?并没有。CastSponsorSkip 用的是 SponsorBlock 的「增强隐私」端点,查询前会把视频 ID 做 SHA256 哈希,只把哈希值的前 4 位发给服务器。SponsorBlock 拿到这 4 位只能粗略匹配,并不知道你具体在看哪个视频。这一点比很多同类工具想得周到。

三、跑起来其实很简单

听起来挺复杂,实际上手部署反而特别轻。CastSponsorSkip 编译成单一二进制文件,没有外部依赖,安装方式覆盖了主流场景:

Docker(推荐,最省心):一行命令搞定,注意必须用 host 网络模式,因为它要靠 mDNS 发现局域网设备:

docker run --network=host ghcr.io/gabe565/castsponsorskip

Homebrew(macOS / Linux):

brew install gabe565/tap/castsponsorskip

APT(Ubuntu/Debian):作者维护了自己的 apt 仓库,加源后 sudo apt install castsponsorskip 即可。

AUR(Arch Linux):yay -S castsponsorskip-bin。

还有 Home Assistant 插件、Kubernetes Helm Chart、systemd 服务文件,覆盖得相当全。家里用 Home Assistant 做智能家居中枢的,直接装插件最方便。

跑起来之后,常用的配置项不多,我用得最顺的是这几个环境变量:

环境变量 作用 默认值
CSS_CATEGORIES 要跳过的赞助类别(sponsor / selfpromo 等) sponsor
CSS_MUTE_ADS 广告播放时是否静音 true
CSS_DEVICES 手动指定设备地址,关掉自动发现 空(自动发现)
CSS_YOUTUBE_API_KEY 部分老款 Chromecast 需要的 YouTube API Key 无

最后这个要单独提一句:部分老款的 Chromecast 设备,CastSponsorSkip 没法直接读到它在播什么视频,这时候需要你额外配一个 YouTube API Key 才能识别。 新款的 Google TV 设备基本没这个问题。如果你发现某个设备一直跳不过,多半是踩到这个坑了,去 README 里翻 YouTube API Key 那一节照着配就行。

四、和同类方案比,差别在哪

CastSponsorSkip 与 sponsorblockcast、浏览器插件对比

Cast 设备跳赞助这个赛道,其实不止 CastSponsorSkip 一家。最常被拿来比较的是它前辈 sponsorblockcast,另外还有 浏览器版的 SponsorBlock 插件。三者各有适用场景。

和 sponsorblockcast 比:sponsorblockcast 是更早出现的方案,用 Python 写的,原理类似但实现上要靠 shell 脚本和字符串解析去和 Cast 设备通信,比较重。前面那张对比表已经能说明问题——内存 70Mi vs 10Mi,CPU 75m vs 1m。CastSponsorSkip 用 Go 重写,直接调用 go-chromecast 库的函数,不走 shell,效率高一个量级。功能上两者基本一致,所以新部署基本都推荐 CastSponsorSkip。

和浏览器 SponsorBlock 插件比:这俩不是竞争关系,是互补关系。浏览器插件管电脑端,CastSponsorSkip 管电视端。如果你家里同时用电脑和电视看 YouTube,两个都装上,覆盖才完整。需要说明的是,手机端 YouTube App 因为走的是 Google 自己的协议,目前这俩工具都管不到它——这是 Cast 设备专用方案,不是万能药。

五、适合谁,不适合谁

折腾到这一步,到底值不值得部署?我的建议是看你的设备情况。

适合装的情况:

  • 家里有 Chromecast / Google TV 电视棒,并且经常用它看 YouTube
  • 有一台常开的设备(NAS、软路由、树莓派、小主机)可以跑后台服务
  • 受够了遥控器来回快进、想彻底无感跳过赞助

不太适合的情况:

  • 只在电脑或手机上看 YouTube——装个浏览器插件就够,没必要上这个
  • 家里没有常开的设备可以跑它——总不能为这个单独开一台电脑
  • 用的是 Apple TV、小米盒子这类非 Cast 协议设备——它只认 Google Cast,别的协议管不了

需要注意的一点:SponsorBlock 数据库是众包的,热门视频标记得很全,冷门视频可能没人标记,跳不过去属正常现象。这不是工具的问题,是数据源的特性。用了就知道,主流 YouTuber 的视频覆盖得相当好。

写在最后

CastSponsorSkip 是那种「小而美」的工具:它就盯准「电视上看 YouTube 跳不过赞助」这一个痛点,用最少的资源、最干净的方式解决掉。10MB 的体积,1m 的 CPU 占用,一个 Docker 命令跑起来,然后你就忘了它存在——直到某天看电视,发现视频里博主刚说完「今天先推荐个……」画面就「嗖」地跳到了正文,你才意识到:哦,它在干活呢。

家里有 Cast 设备又常看 YouTube 的朋友,今晚就可以部署起来试试。


CastSponsorSkip 项目地址:https://github.com/gabe565/CastSponsorSkip 语言:Go | 许可证:Apache-2.0 | 内存占用:约 10Mi | Stars:633

喜欢这款工具?关注「善忘技术夹」全媒体

扫描二维码关注微信公众号与小程序,获取更多高品质开源软件推荐与效率工具测试。

善忘技术夹 微信公众号宣传图
微信公众号 (扫码关注)
善忘技术夹 微信小程序宣传图
微信小程序 (扫码即用)