Am 24. März 2021 schrieb Joël Schurter einen Artikel über Invidious.
Seitdem ist einige Zeit vergangen und Invidious hat seitdem ein paar Verbesserungen erfahren.
Ich möchte heute als Ergänzung dazu beschreiben, wie man sich eine Invidious Instanz auf dem eigenen Server hosten kann.
Zunächst aber nochmal eine Auflistung der aktuellen Features
User features
- Lightweight
- No ads
- No tracking
- No JavaScript required
- Light/Dark themes
- Customizable homepage
- Subscriptions independent from Google
- Notifications for all subscribed channels
- Audio-only mode (with background play on mobile)
- Support for Reddit comments
- Available in many languages, thanks to our translators
Data import/export
- Import subscriptions from YouTube, NewPipe and Freetube
- Import watch history from NewPipe
- Export subscriptions to NewPipe and Freetube
- Import/Export Invidious user data
Technical features
-
Embedded video support
-
Developer API
-
Does not use official YouTube APIs
-
No Contributor License Agreement (CLA)
Hardware Voraussetzung:
Bei mir läuft Invidious auf einem Proxmox Container mit 2 GB RAM und 16 GB HDD.
Der Betrieb ist aber auch auf einem SBC wie dem Raspberry mit mindestens 512 MB RAM möglich
Installation:
In der Doku sind verschiedene Möglichkeiten erwähnt, ich empfehle die Variante über Docker Compose
Wer Docker und Docker Compose noch nicht installiert hat kann es hier und hier nachlesen.
Portainer installiere ich gleich immer mit, das vereinfacht die Verwaltung, ist aber nicht nötig.
Wer auch Portainer möchte, kann hier nachlesen, wie es geht.
git clone https://github.com/iv-org/invidious.git
cd invidious
Die docker-compose.yml mit folgendem Inhalt editieren
version: "3"
services:
invidious:
image: quay.io/invidious/invidious:latest
# image: quay.io/invidious/invidious:latest-arm64 # ARM64/AArch64 devices
restart: unless-stopped
ports:
- "3000:3000"
environment:
# Please read the following file for a comprehensive list of all available
# configuration options and their associated syntax:
# https://github.com/iv-org/invidious/blob/master/config/config.example.yml
INVIDIOUS_CONFIG: |
db:
dbname: invidious
user: kemal
password: kemal
host: invidious-db
port: 5432
check_tables: true
# external_port:
# domain:
# https_only: false
# statistics_enabled: false
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/comments/jNQXAC9IVRw || exit 1
interval: 30s
timeout: 5s
retries: 2
depends_on:
- invidious-db
invidious-db:
image: docker.io/library/postgres:14
restart: unless-stopped
volumes:
- postgresdata:/var/lib/postgresql/data
- ./config/sql:/config/sql
- ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
environment:
POSTGRES_DB: invidious
POSTGRES_USER: kemal
POSTGRES_PASSWORD: kemal
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
volumes:
postgresdata:
Invidious benutzt Port 3000. Wer noch andere Container installiert hat, der sollte den externen Port entsprechend anpassen.
Danach kann mit folgendem Befehl die Installation gestartet werden.
docker-compose up -d
Nach kurzer Zeit hat man seine eigene Invidious Instanz installiert.
Wer Invidious nicht nur im LAN, sondern auch aus dem Internet) erreichbar machen möchte, sollte einen Proxy-Manager nutzen (Link zum Artikel).
Das Optionsmenü für den Player
Die Verwaltung von Abonnements
Filme lassen sich auch downloaden
Auch ein Dark Mode ist verfügbar
Die Import und Export Einstellungen
Nachdem man geschafft hat, seine bestehenden Abonnements aus YouTube zu exportieren kann man diese leicht in Invidious importieren. Sehr praktisch ist, das man sie dann von Invidious aus im OPML Format exportieren und importieren kann. Auch die Möglichkeit Inhalte direkt herunterladen zu können erspart zusätzliche Tools