Invidious — Alternative Privacy-First Frontend for YouTube
Invidious lets you watch YouTube without ads, tracking, or a Google account. It proxies video content and strips all tracking — a self-hostable frontend for YouTube that respects your privacy.
What it is
Invidious is an open-source alternative frontend for YouTube that proxies video content and strips all Google tracking. It runs as a self-hosted web application written in Crystal, serving YouTube videos without ads, without JavaScript requirements, and without Google account dependencies.
Privacy-conscious users, self-hosters, and organizations that want to provide YouTube access without exposing users to Google telemetry use Invidious. Public instances are also available for users who do not want to self-host.
How it saves time or tokens
Invidious eliminates ad watching time and reduces page load times by stripping heavy JavaScript bundles from YouTube. For developers and researchers who scrape or process YouTube content, Invidious provides a cleaner API for accessing video metadata, captions, and comments without dealing with YouTube's obfuscated frontend code.
How to use
- Use a public instance or self-host:
# Self-host with Docker
git clone https://github.com/iv-org/invidious.git
cd invidious
cp docker-compose.yml docker-compose.override.yml
docker compose up -d
- Open
http://localhost:3000in your browser. - Search for videos, subscribe to channels (stored locally), and watch without Google tracking.
Example
# Access Invidious API for video metadata
curl 'http://localhost:3000/api/v1/videos/dQw4w9WgXcQ' | python3 -m json.tool
# Get video captions
curl 'http://localhost:3000/api/v1/captions/dQw4w9WgXcQ'
# Search videos via API
curl 'http://localhost:3000/api/v1/search?q=linux+terminal+tools'
Related on TokRepo
- AI tools for web scraping — Tools for extracting and processing web content
- Self-hosted tools — Applications you can run on your own infrastructure
Common pitfalls
- Public instances frequently go down or get rate-limited by YouTube. For reliable access, self-host your own instance.
- Invidious depends on reverse-engineering YouTube's internal API, which YouTube changes regularly. Keep your instance updated to avoid breakage.
- Some YouTube features (live chat, community posts, premieres) are not supported or have limited functionality in Invidious.
Frequently Asked Questions
Invidious is open-source software that accesses publicly available YouTube content. Its legality depends on your jurisdiction and how you use it. It does not bypass DRM or download protected content by default. Check your local laws regarding alternative frontends.
Yes. Invidious stores subscriptions locally in its database (not through a Google account). You can import and export subscription lists in OPML format. Subscriptions work without logging into Google.
Invidious provides direct video stream URLs that can be used with tools like yt-dlp. The web interface does not have a download button by default, but the API exposes stream URLs for each quality level.
YouTube regularly changes its internal APIs, which can break Invidious functionality. The maintainers typically release fixes within days. Self-hosted instances should pull updates frequently. Using the Docker image with automatic updates reduces downtime.
Invidious is written in Crystal, a compiled language with Ruby-like syntax. The choice of Crystal provides good performance for proxying video content while keeping the codebase readable. PostgreSQL is used for data storage.
Citations (3)
- Invidious GitHub— Invidious is an alternative frontend for YouTube
- Invidious README— Written in Crystal with PostgreSQL backend
- Invidious API Docs— Provides REST API for video metadata and captions
Related on TokRepo
Discussion
Related Assets
Flax — Neural Network Library for JAX
A high-performance neural network library built on JAX, providing a flexible module system used extensively across Google DeepMind and the JAX research community.
PyCaret — Low-Code Machine Learning in Python
An open-source AutoML library that wraps scikit-learn, XGBoost, LightGBM, CatBoost, and other ML libraries into a unified low-code interface for rapid experimentation.
DGL — Deep Graph Library for Scalable Graph Neural Networks
A high-performance framework for building graph neural networks on top of PyTorch, TensorFlow, or MXNet, designed for both research prototyping and production-scale graph learning.