Plex Media Server unter Proxmox mit Synology DSM und DVB-C Live-TV & DVR

Allgemein Linux

Nicht, dass ich viel fernsehen würde – ich bin eher ein Fan von Streaming-Diensten. Auch wenn die Fritzbox prinzipiell als DLNA-Dienst mit angeschlossenem USB-Stick genutzt werden kann – so richtig glücklich wird man damit nicht.

Also habe ich mich auf dem Markt umgeschaut und verschiedene Lösungen wie Kodi, Jellyfin, Plex etc. angeschaut und bin bei Plex hängen geblieben. Da ich bereits ein Proxmox-Setup mit Synology DSM laufen habe, dachte ich mir, warum nicht Plex mit einer Anbindung als NFS-Share an die NAS einrichten.

Hier sind die notwendigen Schritte:

Ich habe mich wieder für einen LXC-Container entschieden, da ich diese grundsätzlich einer vollwertigen VM vorziehe.

Benötigt wird ein aktueller LXC-Debian-Container, der unter local / CT Templates / Templates heruntergeladen werden kann.

Wenn du fertig bist, klicke oben rechts auf Create CT:

Als Template wähle das Debian-Image, das du gerade heruntergeladen hast:

Man muss dem Container nur die vorgegebenen 8 GB Festplatte, 1-2 Kerne und 512 MB RAM geben. Selbst beim Transkodieren von Filmen habe ich das System mit 2 Kernen noch nicht ausgereizt.

Ich empfehle jedoch, die IP-Adresse statisch zu setzen oder per DHCP zu vergeben und dann im Router dauerhaft zu reservieren. Auf jeden Fall sollte sich die IP in Zukunft nicht mehr ändern.

Am Ende solltest du die Zusammenfassung bestätigen und den Container bauen lassen:

Dann klicke für diesen Container auf Options / Feature und aktiviere NFS – das brauchen wir später noch.

Wenn der LXC gestartet ist, kannst du dich mit deinen root-Zugangsdaten anmelden:

In einem ersten Schritt wird das System aktualisiert:

apt update && apt upgrade -y

Danach installiere curl und gnupg.

apt install curl gnupg -y

Als nächstes müssen wir das Repository für Plex hinzufügen, aber dafür brauchen wir zuerst den GPG-Schlüssel.

curl -sS https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor | tee /usr/share/keyrings/plex.gpg > /dev/null 
echo "deb [signed-by=/usr/share/keyrings/plex.gpg] https://downloads.plex.tv/repo/deb public main" > /etc/apt/sources.list.d/plexmediaserver.list

Und schon kann die Installation von Plex Media Server beginnen:

apt update && apt install plexmediaserver -y

An dieser Stelle empfehle ich dir, den Container neu zu starten und dich danach wieder als root einzuloggen.

Überprüfe dann, ob der plexmediaserver-Dienst korrekt läuft:

systemctl status plexmediaserver

Mit „q“ oder CTRL-C kann diese Ansicht wieder verlassen werden.

Als nächstes loggen wir uns in das Webinterface ein. Falls du die IP-Adresse des Plex vergessen hast, kannst du sie dir mit ip a anzeigen lassen. In meinem Fall war es 192.168.178.72 (siehe oben). Öffne also deinen Webbrowser und gib folgende Zeile in die Adresszeile ein (ersetze durch die IP deines Plex-Servers)

https://<plex_server_ip>:32400/web

Du wirst auf der Anmeldeseite des Plex Media Servers begrüßt. Melde dich mit deinen Plex-Credentials an oder erstelle einen neuen Plex-Account – Plex funktioniert nicht ohne.

Die kurze Einführung kannst du überspringen, als nächstes gibst du deinem Plex Server einen Namen.

Dann richten wir eine Bibliothek für deine lokalen Filme, Serien und Musik ein. Bei Bedarf kannst du das später nachholen.

Nun haben wir die Filme etc. nicht lokal im Container, sondern auf einem externen NAS. Diese sollte über eine Network File Service (NFS) Freigabe verfügen. Falls diese noch nicht vorhanden ist, richten wir diese nun ein. Dazu klicken wir im SynologNAS (DSM) auf Systemsteuerung / Dateidienste:

Wie du siehst, ist mein NAS unter 192.168.178.81 erreichbar, das wird später noch wichtig – bei dir kann es natürlich anders sein, du musst es dir nur merken.

Der SMB-Dienst sollte standardmäßig bereits aktiv sein, denn so funktioniert die Freigabe unter Windows oder macOS. Wir wollen aber die NFS-Freigabe und klicken deshalb auf den Reiter NFS:

Hier setzen wir das Häkchen bei NFS-Dienst aktivieren und übernehmen die Einstellungen:

Wenn du die NAS zum ersten Mal einrichtest, musst du zunächst einen neuen Freigabeordner mit Standardkonfiguration anlegen, wie das geht, habe ich hier beschrieben. Bei mir gibt es ihn jetzt, er heißt einfach plex und liegt auf Volume 1.

Dieser enthält verschiedene Unterordner, die ich bereits angelegt habe:

Aber zurück zum Thema. Wenn du, wie im vorletzten Screenshot markiert, bei aktiviertem plex-Ordner auf Bearbeiten klickst, siehst du ganz rechts die NFS-Berechtigungen.

Klicke auf diesen Reiter, dann auf Erstellen (die Liste sollte noch leer sein) und erstelle/bearbeite eine NFS-Regel. Als Host muss mindestens die IP des Plexservers eingetragen werden, du kannst aber auch dein gesamtes lokales Subnetz (bei mir 192.168.178.0/24) oder ein Sternchen * für alle IP-Adressen (also keine Einschränkung) eintragen. Das hängt von deiner Konfiguration zu Hause ab. Ich empfehle, so wenig Hosts wie möglich Zugriff auf diesen NFS-Share zu geben.

Wichtig ist dann noch der Eintrag bei Squash „Alle Benutzer zu Admin zuordnen“, damit später auch ohne weiteres Schreibrechte für Plex auf dem NFS-Share bestehen.

Das Ganze kann so gespeichert werden.

Nun sind die Voraussetzungen für eine NFS-Freigabe geschaffen und wir können uns mit dieser verbinden. Dazu wechselst du wieder als root in die Kommandozeile und erstellst im Verzeichnis /mnt den Unterordner plex

mkdir /mnt/plex

Dann stellst du die NFS-Verbindung her und gibst die IP-Adresse deines NAS ein, die du dir im obigen Schritt gemerkt hast.

mount -t nfs -o soft 192.168.178.81:/volume1/plex /mnt/plex

Und tada! Jetzt siehst du auf dem Plex-Server im Verzeichnis /mnt/plex die Unterverzeichnisse, die auf der NAS liegen.

Damit das auch nach einem Neustart des Plex funktioniert, sollte man den NFS-Mount in /etc/fstab eintragen:

nano /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
192.168.178.81:/volume1/plex    /mnt/plex       nfs     defaults        0       0

Speichere das Ganze mit CTRL-X, gefolgt von einem „J“ für „Ja“.

Nun, da die NFS-Verbindung steht, kannst du mit der Einrichtung im Webinterface fortfahren. Wähle im ersten Schritt den Typ der Mediathek aus, z.B. Filme:

Über die Schaltfläche „Medienordner durchsuchen“ können Ordner ausgewählt oder hinzugefügt werden:

Wie hier zu sehen ist enthält der plex-Ordner alle Ordner mit ihren Inhalten, wie sie auf dem NAS freigegeben sind.

Wenn du das für Filme, Serien und Musik gemacht hast, steht dir die Welt von Plex offen:

Auf der linken Seite findest du unter Filme, Serien und andere Videos deine lokale Bibliothek – in diesem Fall die auf dem NAS. Ein Blick auf Mehr> auf der linken Seite macht es noch übersichtlicher (hier habe ich den Server von plex in MNetServer umbenannt, um den Überblick nicht zu verlieren).

LiveTV

Kommen wir zu LiveTV. Hier findest du zunächst einmal frei empfangbare – meist englischsprachige – Sender. Der eigentliche Clou ist aber, dass du deinen eigenen DVB-C-Empfänger hinzufügen kannst. Und die Cable-TV-Fritzboxen (6590, 6591, 6670 oder 6690, etc.) haben gleich mehrere DVB-C-Tuner eingebaut.

Klicke oben rechts auf dein Profilbild und dann auf Kontoeinstellungen:

Wenn du im Menü auf der linken Seite ganz nach unten scrollst, findest du den Button LiveTV & DVR:

Klicke dort auf Gerät hinzufügen und er findet sofort die Fritzbox als möglichen Tuner. Du wirst nach Land und Postleitzahl gefragt, gib diese ein. Bei der Auswahl für den Sendersuchlauf hat sich bei mir „DVB-C Germany (Kabel komplett)“ am besten bewährt, das kann bei dir aber je nach Region anders sein. Dann startet der Sendersuchlauf – das dauert eine Weile.

Dann beginnt die Senderzuweisung, die sehr mühsam sein kann.

Einige Sender kann er selbst zuordnen, andere nicht. Links steht immer, was er im Sendersuchlauf gefunden hat (bei mir 400 Sender inkl. Radio) und rechts die EPG-Zuordnung (1048 Sender). Unter Belegung – Netz auswählen – Vodafone-Kabel-Helpdesk findet man für Vodafone eine gute Übersicht über die Kabelkanäle. Der Wert in der vorletzten Spalte (hier z.B. 33 für BR Fernsehen Süd) findet sich auch in Plex wieder (033 Bayerisches Fernsehen Süd).

Das ist zwar immer noch mühsam, aber im Browser funktioniert auf der Vodafone-Seite wenigstens die Textsuche, so dass man schnell die richtige Nummer findet. Und mit etwas Arbeit hat man am Ende eine vollständige Liste (er lädt dann am Ende gleich den EPG für alle Sender) – das sind bei mir 80 aktive unverschlüsselte Sender (kein Radio).

Unter DVR-Einstellungen kann man dann u.a. die Werbung automatisch aus den Aufnahmen entfernen lassen 🙂

Aufnahmen? Hat er Aufnahmen gesagt? Ja, hat er! Denn jetzt kannst du z.B. in der Plex-Suchleiste nach Sendungen wie Ninja Warrior suchen:

Und wenn ein roter Punkt dahinter ist, kannst du eine Aufnahme programmieren, weil er die Sendung im EPG für deinen DVB-C-Tuner gefunden hat.

Es können sowohl Einzelaufnahmen als auch Serienaufnahmen programmiert werden. Die Aufnahme wird dann entsprechend der Zuordnung Filme/Serien/etc. auf der NFS-Freigabe gespeichert. In den erweiterten Einstellungen kannst du auch die Vor- und Nachlaufzeit individuell festlegen.

Wenn eine Aufnahme gemacht wurde, siehst du bei der Suche den Play-Button (orange – siehe vorletztes Bild).

Oder du gehst auf Live TV / Aufnahmeplan und siehst dort sowohl deine geplanten Aufnahmen inkl. Aufnahmepriorität als auch die bereits aufgenommenen Sendungen (die mit Play-Button).

Nachtrag 02.11.2024: Plex konnte bislang kann nur auf einen Tuner der Fritzbox zugreifen, obwohl die Fritzbox 4 Tuner hat – d.h. parallele Aufnahmen waren nicht möglich. Das sieht man auch ganz gut an dem gelben Dreieck bei der heute-show (siehe oben) – parallel zu Ninja Warrior. Aber dafür gab es ja die rechte Spalte – Prioritäten setzen! Seit dem letzten Update sind auch parallele Aufnahmen möglich, siehe folgendes Bild – das hat nämlich funktioniert:

Und damit hat WaipuTV bei mir auch keine Daseinsberechtigung mehr. Denn 100h Aufnahmespeicher habe ich auch so… und mehr.

mediathekview im Webinterface/Kommandozeile

Okay, wie löst man das Problem der parallelen Ausstrahlung? Die Antwort ist mediathekview. Mit dieser App kann man Filme, Serien etc. aus den Mediatheken der öffentlich-rechtlichen Sender herunterladen (und dann auch manuell auf NFS-Share kopieren) – also für das spätere Streaming mit Plex. Die App ist prinzipiell auf allen gängigen Plattformen verfügbar, allerdings immer nur mit grafischer Weboberfläche, die sich nicht in Plex integrieren lässt.

Ein grafisches Interface ist aber nicht zwingend notwendig. Denn Plex ist ein Linux-Server und die App läuft auch auf der Kommandozeile oder notfalls mit Webinterface.

Jetzt wird es aber etwas Linux-lastig. Zuerst klonen wir den entsprechenden Code aus dem Git. Also als root auf Plex einloggen und einen Standardbenutzer anlegen (ich habe ihn mtv genannt), da ich der App keine rot-Rechte geben möchte.

adduser mtv

Gib dem Benutzer ein Passwort, folge dem Dialog und beende die letzte Frage mit J oder Y, um den Benutzer zu erstellen.

Dann installieren wir sudo und fügen den neuen Benutzer zur Gruppe sudo hinzu. Dadurch erhält mtv bedingte root-Rechte.

apt install sudo
adduser mtv sudo

Dann als neuer Benutzer anmelden:

su mtv

Wechselt in das Home-Verzeichnis und klont den entsprechenden Code aus Git.

cd ~
git clone https://github.com/bablokb/mtv_cli

Danach in das neue Verzeichnis wechseln und die Installationsroutine starten, danach den Webservice für die Anwendung starten.

cd mtv_cli
sudo tools/install-mtv_cli mtv
sudo systemctl start mtv_web.service

Zuerst muss die Konfiguration so geändert werden, dass die NFS-Freigabe als Ziel verwendet wird. Dazu führt ihr sudo nano /etc/mtv_cli.conf aus und passt folgende Werte an

[CONFIG]
#DATE_CUTOFF: 30
DATE_CUTOFF: 365

#ZIEL_DOWNLOADS: /data/videos/{Sender}_{Datum}_{Thema}_{Titel}.{ext}
ZIEL_DOWNLOADS: /mnt/plex/mediathekview/{Sender}_{Datum}_{Thema}_{Titel}.{ext}

Kurz gesagt, die Datenbank, in der die Anwendung nach Filmen etc. suchen soll, wird auf 1 Jahr erweitert (statt 30 Tage) und die bestehende Zeile ZIEL_DOWNLOADS wird auskommentiert und durch die andere ersetzt. Dann mit CTRL-X und J/Y speichern und schließen. Sicherstellen, dass der Ordner /mnt/plex/mediathekview wirklich existiert, ansonsten mit mkdir /mnt/plex/mediathekview anlegen.

Die Datei /etc/cron.d/mtv_cli enthält verschiedene Cronjobs, damit mediathekview automatisch nach neuen Beiträgen suchen und diese herunterladen kann. Achten Sie darauf, dass hier der Benutzer mtv eingetragen ist – sonst ändern.

15 20 * * * mtv /usr/local/bin/mtv_cli.py -A
30 20 * * * mtv /usr/local/bin/mtv_sendinfo
00 23 * * * mtv /usr/local/bin/mtv_cli.py -D

Grundsätzlich kannst du auch die Weboberfläche nutzen. Diese erreichst du über http://:8026 im Browser – also die IP von Plex.

Hier kannst du über die Suche nach Beiträgen in den verschiedenen Mediatheken suchen, diese durch Anklicken auswählen (das geht auch seitenübergreifend) und dann mit einem Klick auf zum Download vormerken.

In der Vormerkliste werden die bereits heruntergeladenen oder noch herunterzuladenden Beiträge angezeigt. Diese werden auch nicht mehrfach heruntergeladen, wenn sie sich bereits auf der Festplatte befinden. Das prüft die App vorher. Du solltest aber darauf achten, dass der Film auch aus der Vormerkliste gelöscht wird, wenn du ihn manuell auf Plex gelöscht hast, damit er auch automatisch von der Festplatte verschwindet. Sonst wird er beim nächsten Mal wieder heruntergeladen, solange er auf der Vormerkliste steht.

Das Ganze funktioniert auch auf der Kommandozeile:

mtv_cli.py -Q thema:"heute-show"

Das Ganze kann mit den oben genannten Spalten (Sender, Thema, Datum, Dauer, Titel) weiter gefiltert werden.

mtv@plex:~$ mtv_cli.py  -Q thema:"heute-show" datum:'>=20.10.2024'
Sender |Thema          |Datum   |Dauer   |Titel                                               
______________________________________________________________________________________________
ZDF    |heute-show     |25.10.24|00:33:33|heute-show vom 25. Oktober 2024 - Nachrichtensatire 
ZDF    |heute-show     |25.10.24|00:33:33|heute-show vom 25. Oktober 2024 - Nachrichtensatire 

Hat man das gewünschte Ergebnis, so setzt man an die Stelle des „-Q“ ein „-b -V“ und merkt die Sendung somit für den Download vor.

mtv@plex:~$ mtv_cli.py -b -V thema:"heute-show" datum:'>=20.10.2024'

Der Download wird dann gestartet mi mtv_cli.py -D

Mehr zu den Möglichkeiten unter bablokb/mtv_cli: Mediathekview auf der Kommandozeile. Nach Installation und Konfiguration des Paketes esmtp kann man sich auch per Mail über neue Sendungen informieren lassen.

Ich habe Wireguard VPN-Tunnel zwischen meinen mobilen Endgeräten und der Fritzbox zu Hause eingerichtet. So brauche ich keine Freigaben oder Portweiterleitungen, um von außen auf den Plex-Server und seine Mediathek zugreifen zu können.

Plex läuft sowohl als App unter Windows, macOS, iOS, Android als auch auf diversen Smart-TVs – so kann ich von überall auf der Welt auf meine gesamte Mediathek inklusive Live-TV über DVB-C zugreifen. Und das Schöne… durch die Möglichkeit von Plex, Sendungen live zu transcodieren (kann direkt am Endgerät zur Laufzeit eingestellt werden), kann ich auch die Qualität für mobile Endgeräte so anpassen, dass es immer noch ansehnlich ist, aber das Datenvolumen nicht „aufgefressen“ wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert