📌 项目地址iv-org/invidious | ⭐ 21,539 颗星 | 🔧 Crystal | 📜 未标注

这个项目是什么

Invidious 是一个开源的 YouTube 替代前端。它让你不访问 youtube.com 也能观看视频、管理订阅,并且不需要使用官方 YouTube API。项目由 Crystal 语言编写,GitHub 上已有 21539 Star。

简单说,Invidious 提供了一层你自己的”翻译层”,把 YouTube 的内容重新包装成更轻量、更隐私友好的界面。

它解决了什么问题

官方 YouTube 前端通常带有广告、追踪脚本、JavaScript 依赖,以及强制登录才能使用部分功能的问题。Invidious 直接回应了这些痛点:

  • 轻量级,页面体积更小
  • 没有广告,没有追踪
  • 不需要 JavaScript 也能观看视频
  • 支持浅色/深色主题,首页可自定义
  • 订阅系统独立于 Google 账号
  • 支持所有已订阅频道的通知
  • 纯音频模式,在手机上支持后台播放
  • 支持 Reddit 评论(替代 YouTube 评论区)
  • 界面支持多种语言

此外,Invidious 不依赖官方 YouTube API,这意味着它不与你共享 Google 数据,也避免了 API 配额限制。

实际用法:先选一个公共实例

使用 Invidious 最简单的方式,是直接选择一个公共实例:

Select a public instance from the list and start watching videos right now!

公共实例列表在 instances.invidious.io。打开后选择一个实例,就可以像使用 YouTube 一样搜索、观看视频、订阅频道。你可以把实例地址当作新的”视频网站”来用。

为了更方便,官方推荐配合浏览器扩展 Privacy Redirect,它能把 YouTube 的 URL 自动重定向到你选择的 Invidious 实例,并替换其他网站内嵌的 YouTube 视频。安装方式参见 Privacy Redirect 项目

实际用法:自托管 Invidious

如果你想完全掌控实例,可以自己部署。README 给出的指引是:

Follow the installation instructions

具体安装步骤参考官方文档:https://docs.invidious.io/installation/

需要说明的是,README 中没有提供直接的 docker-compose 或编译命令,所以请务必查阅上面的官方安装文档,里面涵盖 Docker、Linux、macOS 等部署方式。

数据导入导出:从 YouTube / NewPipe / FreeTube 迁移

Invidious 支持多种数据迁移场景:

  • 从 YouTube、NewPipe、FreeTube 导入订阅
  • 从 YouTube、NewPipe 导入观看历史
  • 导出订阅到 NewPipe、FreeTube
  • 导入/导出 Invidious 用户数据

这意味着你不需要保留 Google 账号生态,也能把自己的订阅和观看记录带走。

技术特点:为什么它和官方 API 没关系

Invidious 不调用官方 YouTube API,而是通过自己的方式获取 YouTube 内容。因此它绕开了 Google 的 API 授权、配额限制和条款约束。同时,项目没有 Contributor License Agreement(CLA),这意味着你贡献代码后仍然保留自己的知识产权,对开发者更友好。

Invidious 还提供开发者 API,文档见 https://docs.invidious.io/api/。如果你有第三方客户端需求,可以基于这些接口构建。

需要注意什么

  • 自托管需要持续维护。YouTube 前端结构会变化,Invidious 需要同步更新才能正常工作,因此不是一劳永逸的部署。
  • 公共实例的可用性不稳定,实例列表会动态变化,建议优先选择社区维护活跃、更新频繁的实例。
  • 尽管无官方 API,但本质上 Invidious 仍然在获取 YouTube 的内容,使用前请了解相关服务条款和当地法律。
  • 如果你只是普通观众,公共实例足够用;如果你想给团队或社区提供服务,自托管并保证实例稳定性是需要投入精力的。

如何贡献

项目欢迎代码和翻译贡献。

代码贡献流程遵循 GitHub Fork + PR 模式:

  1. Fork 这个仓库:https://github.com/iv-org/invidious/fork
  2. 创建功能分支:git checkout -b my-new-feature
  3. 暂存文件:git add .
  4. 提交改动:git commit -m 'Add some feature'
  5. 推送到分支:git push origin my-new-feature
  6. 创建 Pull Request:https://github.com/iv-org/invidious/compare

翻译工作在 Webate 上进行:https://hosted.weblate.org/engage/invidious/。不需要账户也可以建议翻译,但如果你想持续贡献,注册账户是推荐的。


如果你厌倦了 YouTube 官方前端的广告和追踪,或者想要一个更轻量、可控的观看方式,Invidious 是值得尝试的项目。先用公共实例体验,再决定是否自托管。

这篇文章对你有帮助吗?

发表回复