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_hostsim 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/*.jsonherunter (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-smifü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.jsonim Datenordner des Plugins gespeichert (AES-256-GCM, zufälliger Schlüssel aussecrets.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/Unlockfreigeschaltet (pro Konto; ✅ Chrome, Handy). - Offizielles Jellyfin: Der Link zur „TV“-Seite wird manuell in
config.jsonhinzugefü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.