Während ich auf immer mehr Google Dienste verzichten kann, benutze ich Youtube doch noch ziemlich oft. Damit soll jetzt auch Schluss sein, Invidious ist als alternatives Front End eine gute Alternative, ohne auf den Content von Youtube zu verzichten.
Die Anwendung kann dezentral, also auf dem eigenen Server oder sogar eigenen Rechner betrieben werden und verhindert viele Probleme die Youtube in hinsichtlich des Datenschutzes mitbringt:
- Freie Software Github (AGPLv3)
- Kein Javascript wird benötigt
- Kein Account Zwang für Abos
- Keine Werbung
In diesem Artikel gehe ich auf die Installation mit Docker ein, die Installation kann aber auch ohne erfolgen. Zunächst habe ich die Git Repository in das Verzeichnis /mnt/docker/invidious
geklont:git clone https://github.com/omarroth/invidious.git /mnt/docker/invidious
In diesem Verzeichnis liegt dann auch schon eine vorgefertigte Docker Compose Datei, jedoch habe ich meine noch angepasst:
---
version: "3.3"
services:
invidious-db:
build:
context: /mnt/docker/invidious
dockerfile: /mnt/docker/invidious/docker/Dockerfile.postgres
restart: unless-stopped
environment:
- POSTGRES_USER=##USERNAME##
- POSTGRES_PASSWORD=##PASSWORD##
- POSTGRES_DB=invidious
volumes:
- /mnt/docker/invidious-db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"]
networks:
bookstack:
ipv4_address: 172.20.0.81
invidious:
build:
context: /mnt/docker/invidious
dockerfile: /mnt/docker/invidious/docker/Dockerfile
volumes:
- /mnt/docker/invidious/config/config.yml:/invidious/config/config.yml
restart: unless-stopped
ports:
- "127.0.0.1:3000:3000"
depends_on:
- invidious-db
networks:
bookstack:
ipv4_address: 172.20.0.80
networks:
bookstack:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/24
Nun müssen die Datenbank Zugangsdaten im config Ordner noch in die config.yml eingetragen werden:
channel_threads: 1
feed_threads: 1
db:
user: ##PASSWORD##
password: ##PASSWORD##
host: 172.20.0.81
port: 5432
dbname: invidious
full_refresh: false
https_only: false
domain:
Danach kann mit docker-compose up -d
auch schon beide Container mithilfe des angegebenen Buildfiles gebaut werden.
Danach sollte die Website unter localhost auf dem Port 3000 laufen (curl localhost:3000
).
Nun habe ich hier noch nginx als Reverseproxy vorgeschaltet, um das ganze schön unter der Domain video.peterge.de mit https laufen zu lassen. Die entsprechende Nginx Config sieht so aus:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name video.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
root /config/www;
index index.html index.htm index.php;
location / {
proxy_pass http://172.20.0.80:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Und schon ist die Invidious Instanz nutzbar:
Benutzung
Unter "LOG IN" > "Sign In/Register" kann ein Account angelegt werden. Danach kann man in den Einstellungen unter "Import/export data" seine Youtube Abos importieren (Zuvor unter https://www.youtube.com/subscription_manager exportieren!), und schon funktioniert die eigene Abo Box!
Weiterhin lassen sich noch weitere Einstellungen, wie das Theme, Kommentare oder die Sprache festlegen.
Zuletzt kann ich noch das Browser Addon Invidition empfehlen, welches alle youtube.com Links in Invidious Links umwandelt. Dieses benutze ich aktuell in Verbindung mit meinem RSS Reader Miniflux, da es aktuell Probleme mit der regelmäßigen aktualisierung der Abo Box gibt:
Update:
Invidious habe ich leider wieder offline nehmen müssen, da Invidious ziemlich Ressourcenhunrig ist und daher die anderen Dienste (Teamspeak) auf dem VPS nicht mehr richtig benutzbar waren.