跳到正文

目录

Invidious:去广告、可自托管的 YouTube 前端

一句话判断

iv-org/invidious 是 YouTube 的前端替代实现——不抓视频、不破解 DRM,只通过 YouTube 公开接口把视频页面、订阅、搜索、字幕、音频流重新渲染成无广告、无追踪、无推荐算法的版本。任何人都可以自托管一个实例,整个项目采用 AGPL-3.0。

为什么需要 Invidious

YouTube 在过去几年陆续加上了:

  • 多层广告(前置/中插/可跳片尾)
  • 强制登录才能看部分视频
  • 基于观看历史的激进推荐
  • 与 Google 账号绑定的追踪

Invidious 提供一个完全可逆的观看体验:登录可选、无广告、无追踪、推荐可关、可纯音频、可导出 RSS。

核心能力

能力描述
无广告播放通过 embed URL 渲染,绕过 YouTube 广告层
无追踪不加载 Google Analytics/YouTube Pixel;默认不记录 IP
可关推荐主页 / 侧栏推荐可一键关
订阅用户系统可选(本地 cookie 或完整账号);订阅源可导出 RSS
音频模式直接拉音频流,省带宽省电池
API/api/v1/... 公开端点,便于第三方客户端
多语言界面翻译覆盖主要语言
多种播放器dash、itag、传统 mp4 三种回退

自托管 vs 公共实例

仓库 README 强烈鼓励自托管,并提供 Docker、Crystal 源码 build、systemd unit 等多种部署路径。公共实例由社区维护,需要警惕运维稳定性,但通常足够个人使用。

最小化自托管:

# Docker 方式(仓库提供 docker-compose.yml)
docker compose up -d

启动后访问 http://localhost:3000,即可获得一个干净的 YouTube 前端。

API 形态

# 获取视频信息
curl https://<your-instance>/api/v1/videos/<video-id>

# 搜索
curl "https://<your-instance>/api/v1/search?q=...&type=video"

# 订阅导出(RSS)
https://<your-instance>/feed/subscriptions

这套 API 也成了 FreeTube、Yattee、Piped 等第三方 YouTube 客户端的事实上游。

适用边界与不适用边界

适用

  • 关心隐私、不愿让 YouTube 拿到完整观看历史的人
  • 想要把 YouTube 当成单纯"视频源",不被首页推荐绑架的人
  • 想要为家庭/小团队部署一个稳定可控的视频入口
  • 想做第三方客户端(Invidious API 是最稳定的开源 YouTube 数据源)

不适用

  • 强依赖 YouTube 直播打赏/Super Chat(Invidious 不支持打赏链路)
  • 期待它解决地区版权问题(视频流最终仍来自 YouTube,地理限制不变)
  • 大型团队把 Invidious 当成生产环境的 SaaS(运维成本需要自己承担)

与 Piped、FreeTube 的关系

  • Piped:另一个 YouTube 替代前端,更强调联邦化(多实例 + ActivityPub 风格关注)。Invidious 偏自托管单体,Piped 偏联邦。
  • FreeTube:基于 Electron 的桌面客户端,后端默认就是 Invidious 实例——这意味着 Invidious 的稳定程度直接影响所有 FreeTube 用户。

过去一年 Invidious 经历了多轮大版本重构(项目从 Ruby 重写到 Crystal),目前在性能与稳定性上比早期版本提升明显。

参与讨论

使用 GitHub 登录。欢迎补充事实、异议与实践。