Headend — Live-TV für Jellyfin aus Enigma2

Ein Enigma2-Receiver (Vu+) als TV-Quelle für Jellyfin: Kanäle, Programmzeitschrift und Logos von derselben Box, gestreamt über den Server, damit die Quelle verborgen bleibt.

Headend macht aus einem Enigma2-Satelliten- oder Kabelreceiver (Vu+ und andere mit OpenWebif) eine Live-TV-Quelle für Jellyfin: Kanäle, Programmzeitschrift und Senderlogos kommen alle von derselben Box.

Was es macht

  • Kanäle aus dem Receiver, gelesen über OpenWebif, erscheinen im Live-TV von Jellyfin.
  • Programmzeitschrift (EPG) aus dem Receiver, für jeden Kanal.
  • Senderlogos (Picons) aus dem Receiver.
  • Stream über den Server: Zuschauer spielen den Kanal vom Jellyfin-Server ab; die Adresse des Receivers wird nie an die Apps übergeben, die Quelle bleibt also verborgen. Mehrere Zuschauer desselben Kanals teilen sich einen Tuner, und ein belegter Tuner führt zu einer klaren Fehlermeldung.
  • Kanalliste unter deiner Kontrolle: zu importierende Bouquets, unbenannte Kanäle ausgeblendet, SD ausgeblendet, wenn es die HD-Version gibt, Namen, Nummern und Reihenfolge anpassbar.
  • Zugriff pro Benutzer: neue Benutzer starten ohne Live-TV-Zugriff über Headend; du gibst ihn auf der Headend-Seite frei.
  • Erotikkanäle hinter einer PIN, pro Benutzer für eine begrenzte Zeit freischaltbar.

Voraussetzungen

  • Jellyfin Server 12.2 oder neuer.
  • Ein Enigma2-Receiver mit OpenWebif, vom Jellyfin-Server aus erreichbar (meist im selben Netzwerk).
  • jellyfin-ffmpeg (der ffmpeg-Build, der mit Jellyfin kommt).
  • Für den Watchdog (optional, bei Neuinstallationen aus): root-SSH auf den Receiver, ohne Passwort oder mit Schlüssel.

Häufige Fragen

Kann ich meine Enigma2- / Vu+-Kanäle in Jellyfin schauen? Ja: Headend fügt den Receiver als TV-Quelle hinzu, mit seinen Kanälen, Programmzeitschrift und Logos, und leitet den Stream über den Jellyfin-Server. Siehe die Anleitung.

Was es wohin sendet

Alle Verbindungen unten starten nur mit einer gültigen Lizenz.

  • Dein Enigma2- / Vu+-Receiver (OpenWebif, deine Adresse; Web-Port 80, Stream 8001; optionale Authentifizierung): Infos, Betriebszustand, Bouquets, Kanäle, Programmzeitschrift (alle 60 Min.), Kanalstreams. Clients sehen nie die Receiver-Adresse — Streams laufen über den Server.
  • SSH zum Receiver (der Watchdog; bei Neuinstallationen ab Version 1.0.5 aus, bis der Admin ihn aktiviert; bei Updates bleibt er, wie er war): TCP/HTTP-Prüfung alle 3 Min.; nach 2 Fehlschlägen der Neustart-Befehl per ssh (Standardbenutzer root, optionaler Schlüssel), dann Reboot; Diagnose wird per SSH gesammelt, bevor neu gestartet wird; Standby nach 10 Min. ohne Aktivität; nächtlicher Kanalscan (02–06). Der SSH-Host-Key wird geprüft ab Version 1.0.5 (Trust on First Use): er wird bei der ersten Verbindung gespeichert (ssh/known_hosts im Datenordner); wenn er sich ändert, wird der Befehl nicht gesendet und eine klare Meldung angezeigt; den gespeicherten Fingerabdruck kannst du auf der Seite ansehen und vergessen.
  • Internet-Kanäle (iptv-org) — bei Neuinstallationen ab Version 1.0.5 aus (die Checkliste bei der Ersteinrichtung erklärt, was sie kontaktieren; bei Updates bleiben sie, wie sie waren), sobald die Lizenz aktiv ist (Standardländer RO, MD): lädt den öffentlichen Katalog iptv-org.github.io/api/*.json herunter (höchstens stündlich, mit ETag), prüft Streams auf den Drittanbieter-Hosts der Kanäle (bis zu 64 KB, alle 24 h / 6 h) und lädt Senderlogos herunter. Diese Hosts sehen die IP-Adresse deines Servers. Lässt sich in den Einstellungen abschalten. Deine eigenen M3U-Listen (URL oder Datei) sind optional.
  • Externe Programmzeitschrift (EPG) — bei Neuinstallationen ab Version 1.0.5 aus (Checkbox in der Checkliste bei der Ersteinrichtung; bei Updates bleibt sie, wie sie war), täglich um 04:00, mit 2 s zwischen den Anfragen: www.programetv.ro, www.cinemagia.ro, epgshare01.online, open-epg.com (+ dein eigenes XMLTV, standardmäßig aus). Es werden nur Programmseiten/-dateien angefragt; keine Benutzerdaten werden gesendet. Programmbilder werden als externe URLs an den Server weitergereicht (der Server kann sie herunterladen).
  • Logos von einem Link: nur auf Aktion des Admins (max. 10 MB). Das Plugin lädt keine Picon-Pakete herunter.
  • Lokal: nvidia-smi für die GPU-Überwachung.
  • Seiten laden keine externen Ressourcen.
  • Dazu der Lizenz-Client, in jedem Plugin derselbe: siehe Lizenzierung und Datenschutz in unseren Plugins.

Lokal gespeichert:

  • Receiver-Daten (Adresse, Ports, OpenWebif-Benutzer) in der Serverkonfiguration; ab Version 1.0.5 ist das OpenWebif-Passwort verschlüsselt in secrets.enc.json im Datenordner des Plugins gespeichert (AES-256-GCM, zufälliger Schlüssel aus secrets.key, gebunden an die Server-ID, beide Dateien mit Modus 600) und wird nie an den Browser gesendet (die Seite zeigt nur „set ✓"); frühere Versionen speichern ihn im Klartext (in der Plugin-Konfiguration). Für SSH werden nur der Schlüsselpfad und der öffentliche Host-Key des Receivers (ssh/known_hosts) gespeichert.
  • PIN für Erotikkanäle: nur als PBKDF2-SHA256-Hash (200.000 Iterationen, gesalzen). Ab Version 1.0.6 haben neue PINs mindestens 6 Stellen (eine bestehende PIN funktioniert weiter), und Fehlversuche werden mit wachsenden Sperrzeiten begrenzt, die einen Neustart überleben.
  • history.json: Kanalstarts der letzten 24 h und Minuten-Nutzung (ohne Benutzernamen); die Programmzeitschrift (24-h-Verlauf), der iptv-org-Katalog, der Live-Puffer im Server-Cache.
  • Das „Backup“-Export des Admins enthält die Plugin-Konfiguration; ab Version 1.0.6 enthält es nicht mehr den PIN-Hash (frühere Versionen enthalten ihn). Adressen aus IPTV-Listen, Programmzeitschrift und Logos können nicht das lokale Netz oder den Server selbst erreichen (außer den konfigurierten Receiver), es sei denn, der Admin schaltet „Local network IPTV sources“ ein (bei Updates automatisch eingeschaltet, wenn gespeicherte Quellen bereits im lokalen Netz sind); IPTV-Adressen werden ohne Konto und Passwort protokolliert.

Kompatibilität mit Clients

  • Kanäle, Programmzeitschrift, Streams, Sperre für Erotikkanäle und Audio-/Untertitel-Einstellungen werden über das Live-TV des Servers ausgeliefert: 🟢 sollte in jeder App mit Live-TV funktionieren.
  • ✅ Jellyfin Web: echte Wiedergabe (HD 4,4–4,7 s, konvertiertes SD 5,2 s), End-to-End 17/17, Erotik 11/11.
  • Jellyfin-Apps (Android/Android TV, Swiftfin, Findroid, Kodi/JellyCon, Infuse, Streamyfin), TV-Browser: ❔ nicht getestet.
  • Nur Browser: die Admin-Seite, die „TV“-Seite (im Netflix-Stil), die „Erotikkanäle“-Seite. In Apps wird die PIN in einem Browser unter /Headend/Unlock freigeschaltet (pro Konto; ✅ Chrome, Handy).
  • Offizielles Jellyfin: Der Link zur „TV“-Seite wird manuell in config.json hinzugefügt (menuLinks); auf medialab Server erscheint er automatisch.

Legende: ✅ verifiziert (End-to-End- oder Test auf dem Gerät) · 🟢 serverseitig, funktioniert mit jedem Client (konstruktionsbedingt, kein clientspezifischer Test) · ➖ nicht zutreffend · ❔ nicht getestet.

Lizenzierung

Das Plugin ist Open Source (GPL-3.0). Die installationsfertigen Builds sind öffentlich, genau wie der Quellcode. Was du kaufst, ist das Abonnement: die Lizenz, das Plugin auf einem Jellyfin-Server zu nutzen, die Updates, die dein Tarif enthält, und Support: jedes Update, solange das Abonnement aktiv ist, über dein privates Plugin-Repository, und Hilfe, wenn etwas nicht funktioniert. Das Plugin prüft den Abonnementschlüssel einmal am Tag; ohne gültiges Abonnement stoppt es, bis du verlängerst (es wird nichts gelöscht). Monatlich, jährlich oder als Lifetime-Lizenz (die Lifetime-Lizenz enthält ein Jahr Updates) oder im Jellyfin-Paket enthalten. 30 Tage kostenloser Test.

Quellcode. Zu jeder Version ist der vollständige zugehörige Quellcode öffentlich, neben dem Build, im Changelog und auch in deinem Konto (Konto → Lizenzen, Quellcode); jedes Archiv enthält den vollständigen GPL-3.0-Text (LICENSE). Wenn du den Quellcode einer Version brauchst, die du nicht mehr herunterladen kannst, frag uns, und wir schicken ihn dir. Siehe Abschnitt 10 der EULA.

Funktioniert am besten mit medialab Server

Dieses Plugin funktioniert mit dem offiziellen Jellyfin 12.2 oder neuer. Auf medialab Server, unserem auf Jellyfin basierenden Server mit denselben Daten, Bibliotheken, Nutzern und Apps, funktioniert es besser:

  • Verified – medialab. Der Server prüft die Signatur unserer Plugins und zeigt dir, dass die Dateien genau die sind, die wir veröffentlicht haben. Ein nach der Veröffentlichung verändertes Plugin wird markiert.
  • In die Oberfläche integriert. Plugins können Schaltflächen und Links zum Menü deiner Nutzer hinzufügen (zum Beispiel „TV“, „Share“), ohne manuelle Web-Konfiguration.
  • Standardmäßig Vorrang. medialab-Plugins stehen dort an erster Stelle, wo es darauf ankommt: Live-TV-Tuner, Programmführer-Quellen und Untertitelanbieter. Die Reihenfolge bestimmst weiterhin du: Du kannst sie jederzeit ändern.
  • Der Katalog von medialab.works ist enthalten, die Installation erfolgt ohne zusätzliche Bestätigungen.
  • Updates über die Weboberfläche, ohne Terminal (mit Self-Update by MediaLab): prüfen, aktualisieren und zurücksetzen über das Dashboard; startet eine neue Version nicht, kehrt der Server von selbst zur vorherigen zurück, deine Daten bleiben unversehrt.
  • Dasselbe Jellyfin, immer aktuell. medialab Server folgt jede Woche den stabilen Versionen von Jellyfin 12.x; eine neue Version wird erst veröffentlicht, wenn sie alle Tests bestanden hat, einschließlich der Tests unserer Plugins.

Headend: Live-TV startet schneller (kürzere Streamanalyse, kürzere erste HLS-Segmente), und die Seite „TV“ erscheint im Menü deiner Nutzer; Headend-Tuner stehen in „Add tuner device“ an erster Stelle.

Die Jellyfin-Apps (Android, iOS, TV, Web) verbinden sich genauso wie mit dem offiziellen Jellyfin.

Zur Installation startest du das Container-Image (Anleitung) oder, unter Debian 12, die apt-Pakete, die jellyfin-server und jellyfin-web ersetzen und deine Daten an Ort und Stelle lassen (Anleitung).

medialab Server ist freie Software (GPL-2.0) auf Basis von Jellyfin. Der Quellcode ist öffentlich: medialab-server und medialab-server-web.

Voraussetzungen

  • Jellyfin Server 12.2 oder neuer (Linux, Windows oder Docker)
  • Ein Enigma2-Receiver mit OpenWebif im selben Netz
  • Open Source (GPL-3.0): Der Quellcode jeder Version liegt in deinem Konto

Neueste Version

1.0.8
veröffentlicht am 20.10.2026
Alle Änderungen ansehen →

Der Build ist öffentlich; für die Nutzung des Plugins brauchst du eine Lizenz oder den kostenlosen 30-tägigen Testzeitraum.