Vibeleaderboard
Index / app
Visit github.com
Category
Entertainment
Type
APP
Builder
iv-org
Latest release
v2.20260804.1
Date

About

Invidious is an open-source, privacy-focused alternative front-end to YouTube — lightweight, with no ads, no tracking, and no required JavaScript, and with subscriptions that work independently of a Google account.

What it does

Invidious is a server you run yourself that sits between you and YouTube. It pulls video, channel, search and comment data from YouTube's internal endpoints, then renders its own pages: no ads, no tracking scripts, and playback that still works with JavaScript turned off. Accounts live in your own database, so subscriptions and playlists exist without a Google login. The same data is exposed as a JSON API, and background workers keep subscription feeds and channel listings current. You either host it or point your browser at somebody else's public instance.

Why it's ranked here

Judge this one on operational reality, not on the feature list. It reads undocumented YouTube endpoints, so upstream changes break playback and the fix cycle never really ends, and stream loading has been split into a separate companion program that operators must run and key themselves. Against that, continuous integration builds across a long span of compiler releases plus a nightly, boots the container image and requests a page from it before passing. The maintainers also state in writing that contributor supply is thin because of the language choice. Strong for a private front end. Fragile as set and forget.

What's good

The operator surface is documented inline: each option carries accepted values, a default, and a note on when it becomes mandatory behind a reverse proxy. The container image creates a dedicated account and runs the binary as that unprivileged user under a small init process. Static linking is available, and the project can be compiled without the web interface for API-only deployments. Health checks gate startup order between the application and its database. The spec suite, a formatter check and a linter all run in continuous integration, and translation work happens on a hosted platform instead of in the repository.

Tradeoffs

The build is heavy. Player dependencies resolve at compile time behind a printed warning that it may take more than twenty minutes, and the container image compiles OpenSSL from source to work around a reported memory leak. Version strings are captured from git during compilation, so repository history has to be present in the build context. The test setup requires parsing helpers and data modules but not the routing layer, so route behaviour is not covered there. Crystal is a small ecosystem and the maintainers say most of the work lands on them. Operators also inherit legal exposure the project explicitly disclaims.

How to use it well

Best for someone who already runs a small Linux server and wants YouTube without the account graph: a home lab, a privacy-minded group, a classroom. Budget an afternoon for the database, the reverse proxy and the companion process, then expect to patch on upstream breakage rather than on your own schedule. The API is worth a look if you want to script feeds or embed video without third-party trackers. It does not download or archive video for you, it does not cover other platforms, and it will not make running a public instance legal where you live.

Technical notes+

The program in src/invidious.cr is one top-level script: it loads config, opens a PostgreSQL connection or exits with a message, builds connection pools for YouTube, image hosts and the companion service, registers background jobs for channel refresh, feed refresh, statistics, pubsub subscriptions, popular videos, notifications and expiry, then hands control to the Kemal web framework with handlers for compression, API routing, auth and frame denial. Flags parsed at startup override thread counts, log level and output destination. Dependencies declared in shard.yml are the web framework, Postgres and SQLite drivers, a protobuf decoder, a content negotiation shard and an HTTP proxy client, with Spectator and Ameba for development. config/config.example.yml is the whole operator surface, from database credentials and companion keys to socket binding and outbound proxy type. docker/Dockerfile builds a static binary in a builder stage, compiles OpenSSL separately, and ships an Alpine image that runs as a created non-root user. .github/workflows/ci.yml runs the spec suite and a build across a compiler matrix, plus a separate container build that starts the stack and probes it over HTTP. The repository also carries a contributor policy requiring anyone submitting AI-assisted issues or code to name the exact model and tooling used and to demonstrate manual human verification.

Observed

License
AGPL-3.0-only
Language
Crystal
Datastore
PostgreSQL
Interfaces
Self-hosted web front end plus a JSON HTTP API
Install surface
Build from source, Docker Compose, or use a third-party public instance
Runtime
Linux server; container image runs as a non-root user
Data source
YouTube internal endpoints, not the official YouTube API
Kubernetes
Helm chart maintained in a separate repository

Read from README.md, shard.yml, src/invidious.cr, config/config.example.yml, docker-compose.yml, docker/Dockerfile, docker/init-invidious-db.sh, Makefile, LICENSE, AI_POLICY.md, .github/workflows/ci.yml, scripts/install-dependencies.sh, scripts/deploy-database.sh, spec/spec_helper.cr, kubernetes/README.md.

What it can do

  • Watch YouTube videos without ads or tracking

    YouTube video URL or search query → Ad-free video playback

  • Import subscriptions from other platforms

    Subscription data from YouTube, NewPipe, or FreeTube → Invidious subscription list

  • Export subscriptions to other platforms

    Invidious subscription list → Export file compatible with NewPipe or FreeTube

  • Play audio-only mode with background playback

    YouTube video → Audio stream with mobile background play capability

  • Display Reddit comments for videos

    YouTube video → Reddit discussion threads related to the video

  • Import and export watch history

    Watch history data from YouTube or NewPipe → Imported watch history in Invidious or exported data file

  • Embed videos without YouTube tracking

    Invidious video URL → Embeddable video player for websites

Tags

agplv3hacktoberfestinvidiouslibrevideowatchyoutubeyoutube-video

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.