2 min read

Datenschutzfreundliche Youtube Nutzung | Invidious

Während ich auf immer mehr Google Dienste verzichten kann, benutzt 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.

Autor: peterge