Invidious is an open-source front-end for YouTube written in Crystal. It's built for people who want to watch YouTube videos without ads, tracking, or the official YouTube JavaScript, and for anyone who wants to run their own instance instead of relying on Google's infrastructure. You can use a public instance immediately or self-host your own.
The project doesn't use official YouTube APIs, which keeps it independent of Google's quota and terms but also means it can break when YouTube changes its internal endpoints. It's maintained by a community that also handles translations through Weblate, so the interface is available in many languages.
Invidious fits people who want a lighter, privacy-respecting way to watch YouTube, especially on low-powered devices or in browsers where they've disabled JavaScript. It's a good match for anyone building a personal, ad-free viewing setup, or for communities that want to run a shared instance instead of pointing everyone at YouTube directly.
It also suits developers who want programmatic access to YouTube-style video data via the documented API, without dealing with the official YouTube Data API's quotas and authentication.
It is not a good fit if you need guaranteed uptime or strict compliance with YouTube's terms of service, since Invidious works around official APIs and instances can be blocked or rate-limited by YouTube without notice. It's also not suited for uploading or managing your own YouTube content since it's a viewing front-end only, not a publishing tool. If you need official support or a stable long-term integration for a commercial product, the unofficial nature of the API access is a real risk to weigh.
There are two ways to use Invidious:
Use an existing instance
Pick any instance from the public list and start watching immediately, no installation needed:
https://instances.invidious.io
Self-host your own instance
The full installation instructions live in the project documentation rather than the README itself:
https://docs.invidious.io/installation/
To contribute code instead of just running it:
git clone https://github.com/iv-org/invidious/fork
cd invidious
git checkout -b my-new-feature
# make your changes
git add .
git commit -m 'Add some feature'
git push origin my-new-feature
# then open a pull request on GitHub
Translations are handled separately through Weblate at hosted.weblate.org/engage/invidious, where you can suggest or correct translations without needing a GitHub account (though one is recommended for regular contributors).
Before deploying it publicly, review the project's liability notice: the maintainers take no responsibility for how you or third parties use the tool, and the AGPL-3.0 license includes a standard limitation of liability clause.