Plan Guard für Jellyfin

Für Jellyfin: Streaming-Limits pro Benutzer oder pro Tarif, durchgesetzt vor und während der Wiedergabe, plus Erkennung von Konten, die mit anderen geteilt werden.

Streams playing right now with each viewer's plan profile, quality and address; a second stream over a Basic plan is flagged with the reason1 von 7

Plan Guard setzt Streaming-Limits pro Benutzer oder pro Tarif auf deinem Jellyfin-Server, setzt sie vor und während der Wiedergabe durch und erkennt Konten, die mit anderen Personen geteilt werden — zum Beispiel ein bezahltes Konto, das gleichzeitig in mehreren Haushalten genutzt wird. Jellyfin hat von sich aus kein Limit für gleichzeitige Streams; Plan Guard fügt eines hinzu.

Was es macht

  • Limitprofile: gleichzeitige Wiedergaben, Qualität zu Hause und unterwegs (Bitrate), maximale Auflösung, ob Videokonvertierung (Transcoding) erlaubt ist und ob 4K-Quellen konvertiert werden dürfen, und wie viele Geräte ein Konto in 30 Tagen nutzen darf. Jeder Benutzer bekommt ein Profil, oder das Standardprofil für alle anderen. Administratoren werden nie begrenzt.
  • Bevor die Wiedergabe startet: Über dem Stream-Limit wird eine neue Wiedergabe abgelehnt, und die angefragte Qualität wird auf die Bitrate des Profils für zu Hause oder unterwegs gedeckelt. Bitrate für Fernzugriff und die Einstellung zur Videokonvertierung werden außerdem in die eigene Jellyfin-Richtlinie jedes Benutzers geschrieben.
  • Während der Wiedergabe: Eine Wiedergabe, die gegen das Profil verstößt, bekommt eine Meldung, dann einen Stopp-Befehl, dann wird ihr Transcoding auf dem Server beendet, und schließlich wird das Gerät abgemeldet. Optional wird das Gerät auch für diesen Benutzer blockiert.
  • Schwer auszutricksen (ab Version 0.1.2): Das Stream-Limit zählt die echten Wiedergabeanfragen pro Anmeldung und Titel, einschließlich Direktdatei-, Download- und HLS-Anfragen; eine zweite Anmeldung mit demselben Gerät oder ein Player, der die Wiedergabe nicht meldet, kommt so nicht mehr vorbei. Die Qualitätsgrenze gilt auch für Direktanfragen. Du kannst jeden Client als unterwegs behandeln, und ein Client ohne Adresse gilt als unterwegs.
  • Erkennung geteilter Konten: ein Trust-Score pro Konto über die letzten 30 Tage, aus gleichzeitiger Wiedergabe in verschiedenen Netzwerken, „unmöglichen Ortswechseln", zu vielen Netzwerken an einem Tag, zu vielen Geräten und neuen Geräten. Standardmäßig benachrichtigt er nur; du kannst dem Benutzer auch eine Nachricht schicken, eine neue Anmeldung erzwingen oder das neueste Gerät blockieren.
  • Funktioniert mit Cashier: Abonnenten bekommen das Profil, das mit ihrem bezahlten Tarif verknüpft ist, und Plan Guard übernimmt das Stoppen der Wiedergabe.
  • Admin-Seite: aktive Streams mit einem Stop-Button (mit optionaler Nachricht), Profile, Benutzer, geteilte Konten und ein Protokoll jeder Aktion. Warnungen zu geteilten Konten erscheinen auch im Aktivitätsprotokoll von Jellyfin.

Kompatibilität mit Clients

Das Stream-Limit und die Bitrate werden auch in Jellyfins eigene Benutzereinstellungen geschrieben und gelten daher für jeden Client. Nicht jeder Player gehorcht einem Stopp-Befehl, also nutzt Plan Guard, was jeder unterstützt:

  • Jellyfin Web (End-to-End getestet): Eine zusätzliche Wiedergabe wird abgelehnt, bevor sie startet, Stopp wird befolgt, und eine Quelle mit 10 Mbit/s wird unter einem 2-Mbit/s-Profil auf 1,6 Mbit/s transkodiert.
  • Player ohne Fernsteuerung wie Infuse, Kodi und DLNA ignorieren Stopp-Befehle: Für sie heißt Stoppen, das Gerät abzumelden (der Benutzer muss sich auf dem Gerät neu anmelden). Das lässt sich in den Einstellungen abschalten. Das folgt aus der Arbeitsweise dieser Player; es wurde auf den echten Apps noch nicht getestet.
  • Wenn ein Player nach dem Stopp-Befehl weiterspielt, beendet Plan Guard sein Transcoding auf dem Server und meldet das Gerät dann ab.
  • Das Stream-Limit wird geprüft, wenn die Wiedergabe startet, auch bei Playern, die Jellyfins Abfrage zu Wiedergabeinfos überspringen und den Stream direkt anfragen.

Die nativen Apps (Android, Android TV, Swiftfin, Findroid, Kodi/JellyCon, Infuse, Streamyfin) wurden noch nicht getestet; die Liste, wie jede reagiert, ergänzen wir nach dem Testen.

Was es wohin sendet

Nichts über deine Benutzer verlässt deinen Server, und Standorte werden lokal nachgeschlagen. Plan Guard lädt die kostenlosen DB-IP Lite City- und ASN-Datenbanken von download.db-ip.com herunter, erneut beim Start, sobald sie älter als 35 Tage sind; und zwar nur, während die Erkennung geteilter Konten läuft (standardmäßig an) und wenn es keine Standortdatenbank wiederverwenden kann, die Access Log oder Security Notifications bereits vorhält. Davon abgesehen erreicht nur die Lizenzprüfung medialab.works. Auf deinem Server hält Plan Guard die Zugriffe pro Sitzung (Benutzer, Gerät, IP, ungefährer Standort) 31 Tage lang vor und ein Protokoll seiner Aktionen.

Alle Details zu jedem Produkt, einschließlich dessen, was auf deinem Server bleibt: Lizenzierung, Datenschutz und Kompatibilität.

IP-Geolocation von DB-IP. Die DB-IP-Lite-Datenbanken sind unter CC BY 4.0 lizenziert.

Voraussetzungen

  • Vorerst medialab Server (die MediaLab-Variante von Jellyfin 12.2). Der aktuelle Build lädt nicht im offiziellen Docker-Image von Jellyfin 12.2 (die API des Servers antwortet nicht mehr); ein Build, der auf dem offiziellen Docker-Image und dem Debian-Paket verifiziert ist, folgt, und bis dahin bleibt das Plugin „coming soon".
  • Optional: Cashier, für Limitprofile pro bezahltem Tarif.

Grenzen

  • Auflösung und Videokonvertierung werden nach dem Start der Wiedergabe geprüft (Meldung, dann Stopp); nur das Stream-Limit und die Bitrate gelten vor dem Start.
  • Mobile Netzwerke, VPNs und Reisen können wie Teilen aussehen, deshalb ist die Standardaktion für geteilte Konten nur eine Benachrichtigung.

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.

Eigener Code, von MediaLab Works geschrieben; er enthält keinen Code Dritter. Der Reader für die Standortdatenbank-Dateien ist unsere eigene Implementierung, geschrieben nach der öffentlichen Spezifikation des MaxMind-DB-Formats. Die Standortdaten kommen von DB-IP und werden von deinem Server heruntergeladen, nicht mit dem Plugin ausgeliefert.

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.

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)
  • Standort aus den kostenlosen Datenbanken DB-IP Lite City und ASN, monatlich heruntergeladen (IP Geolocation by DB-IP, CC BY 4.0)
  • Cashier by MediaLab optional: Limitprofile pro bezahltem Tarif
  • Open Source (GPL-3.0): Der Quellcode jeder Version liegt in deinem Konto

Neueste Version

0.1.4
veröffentlicht am 20.10.2026
Alle Änderungen ansehen →