Jellyfin-Abo mit Stripe verkaufen: Tarife, Testphase, automatische Sperre

Richte Cashier ein und verkaufe den Zugang zu deinem Jellyfin-Server über dein eigenes Stripe-Konto: Tarife festlegen, Stripe verbinden, Zahlung aktiviert das Konto, ausbleibende Zahlung sperrt es, ohne etwas zu löschen.

Wenn du einen Jellyfin-Server für einen Verein, eine Community oder einen Freundeskreis betreibst, kommt irgendwann die naheliegende Frage: Wie decken wir die Hosting-Rechnung? Cashier ist unsere Antwort für Selfhoster. Es macht deinen Jellyfin-Server zu einem kostenpflichtigen Angebot: Ein Besucher wählt einen Tarif, zahlt über dein eigenes Stripe-Konto, und das Jellyfin-Konto ist sofort aktiv. Wird eine Verlängerung nicht bezahlt, wird das Konto gesperrt, bis die Rechnung beglichen ist – und niemals automatisch gelöscht.

Der letzte Punkt ist wichtig. Cashier ist kein Lizenzdurchsetzer, der Nutzer löscht; es ist eine Kasse. Es arbeitet mit Registration zusammen, das die Registrierungsseite und die Kontoerstellung bereitstellt, während Cashier Tarife, Stripe und den Abo-Status verwaltet. Die vollständige Produktbeschreibung findest du auf der Cashier-Seite, und du kannst der Anleitung folgen.

Bevor du loslegst

Ein paar Dinge solltest du klären, bevor du eine Einstellung anfasst.

Rechte am Inhalt. Cashier berechnet deinen Nutzern über dein eigenes Stripe-Konto. Du allein bist dafür verantwortlich, dass du die Rechte an den Inhalten oder dem Dienst besitzt, für die du Geld nimmst – zum Beispiel an den Filmen, Serien oder Kanälen auf deinem Server. MediaLab Works stellt nur die Software bereit und ist nicht an deinen Verkäufen beteiligt, und Stripe kann ein Konto schließen oder einschränken, das für Inhalte ohne die entsprechenden Rechte Geld nimmt (siehe Stripes Liste eingeschränkter Geschäftsfelder). Berechne also nur Inhalte, die dir gehören oder für die du lizenziert bist, und halte deinen Server privat für deine zahlenden Mitglieder.

Dein eigenes Stripe-Konto. Zahlungen gehen in dein Stripe-Konto; Kartendaten berühren deinen Server nie. Stripe erhebt eine eigene Gebühr pro Zahlung. Außerdem solltest du über Steuern nachdenken: Cashier unterstützt eine optionale Rechnungsadresse und Stripe Tax, beide standardmäßig aus, also entscheide, ob du sie brauchst, bevor du den Verkauf einschaltest.

Voraussetzungen:

  • Jellyfin Server 12.2 oder neuer (Linux, Windows oder Docker).
  • Registration von MediaLab, installiert und lizenziert – Cashier nutzt dessen Registrierungsseite, E-Mail-Einstellungen und Kontoerstellung.
  • Ein Stripe-Konto und dein Server über HTTPS erreichbar, damit Stripe den Webhook aufrufen kann.
  • Eine gültige Cashier-Lizenz. Wenn du noch keinen Schlüssel hast, kannst du die 30-tägige kostenlose Testphase auf der Lizenzseite des Plugins starten.

Installiere Cashier aus deinem privaten Plugin-Repository (empfohlen), aus dem öffentlichen Katalog oder manuell aus dem Zip unter Account → Licenses. Öffne dann die Plugin-Seite unter Dashboard → Plugins → Cashier by MediaLab, klicke auf Open License page und aktiviere deinen Schlüssel.

Schritt für Schritt

1. Zuerst Registration konfigurieren

Installiere und lizenziere Registration und lege dann die öffentliche Adresse und SMTP fest. Cashier versendet jede Abonnenten-E-Mail – fällige Rechnung, fehlgeschlagene Zahlung, erfolgreiche Zahlung, Sperrung, Reaktivierung – über die SMTP-Einstellungen von Registration. Wenn der Mailversand hier nicht funktioniert, funktioniert er später auch nicht.

2. Stripe-Schlüssel einfügen

Öffne Dashboard → Cashier und gehe zu Keys. Füge deinen Stripe-Secret-Key (sk_…) ein – oder besser einen eingeschränkten rk_…-Key –, klicke auf Save and test und dann auf Create the webhook automatically. Der Schlüssel wird in data/secrets.json gespeichert, die aus der an den Browser ausgelieferten Konfiguration herausgehalten wird.

Wenn dein Server keine öffentliche HTTPS-Adresse hat, kannst du den automatischen Webhook überspringen: Cashier liest Stripe-Ereignisse dann alle 15 Minuten aus, ohne dass ein offener Port nötig ist.

3. Dienstname und öffentliche Adresse festlegen

Gib den Dienstnamen ein, der Kunden angezeigt wird, sowie die öffentliche Adresse des Servers (zum Beispiel https://jellyfin.example.com). Die Adresse wird für die Rückkehr von Stripe und für den Webhook verwendet, sie muss also korrekt sein.

4. Tarife festlegen

Prüfe die Tarife: Zeitraum (monatlich oder jährlich), Anzahl gleichzeitiger Streams und Preis. Tarife werden über die Anzahl der Geräte definiert, die gleichzeitig abspielen dürfen – zum Beispiel 1 bis 4 Bildschirme. Klicke auf Save and send to Stripe: Die Preise werden in deinem Stripe-Konto angelegt. Beachte, dass ein geänderter Preis einen neuen Stripe-Preis erzeugt, während bestehende Abonnenten ihren behalten, bis sie den Tarif wechseln.

5. Testphase und Kulanzfrist

Lege die Testtage fest (eine optionale kostenlose Testphase für das erste Abo) und die Kulanzfrist. Die Kulanzfrist bestimmt, wie lange ein Konto nach einer fehlgeschlagenen Zahlung aktiv bleibt, während Stripe es erneut versucht – standardmäßig 3 Tage.

6. Verkauf einschalten

Wenn alles oben eingerichtet ist, schalte den Verkauf ein. Neue Kunden wählen nun auf der Registrierungsseite einen Tarif und zahlen; ihr Konto wird aktiviert, sobald Stripe die Zahlung bestätigt. Wenn du den Verkauf später ausschaltest, bleibt jedes Konto unverändert.

Wie sich Zahlung und ausbleibende Zahlung verhalten

Das ist das Herzstück des Plugins, daher lohnt es sich, es zu verstehen, bevor du die Türen öffnest.

  • Zahlung aktiviert. Sobald Stripe die Zahlung bestätigt, wird das Konto mit den Limits des Tarifs aktiviert. Es gibt keinen manuellen Freigabeschritt: Die Zahlung ersetzt ihn.
  • Ausbleibende Zahlung sperrt. Nach einer fehlgeschlagenen Zahlung bleibt das Konto während der Kulanzfrist aktiv, während Stripe es erneut versucht, danach wird es gesperrt. Wird die Rechnung bezahlt, wird es wieder aktiviert.
  • Standardmäßig wird nichts gelöscht. Das Löschen lange gesperrter Konten ist optional und standardmäßig aus. Die Abonnentenzeile wird zusammen mit dem Serverbenutzer und erst dann gelöscht.
  • Das Stream-Limit wird durchgesetzt. Wiedergabe über die Anzahl der Geräte des Tarifs hinaus wird nativ (MaxActiveSessions) bei der Anmeldung oder beim Start der Wiedergabe gestoppt, sodass es mit jedem Client funktioniert.
  • Stripe wird alle 15 Minuten abgeglichen, falls ein Webhook verpasst wurde.

Abonnenten erhalten in jedem Browser eine Kundenseite unter /Cashier/Page, und Fernseher können per QR-Code, der auf dem Server erzeugt wird, vom Handy aus bezahlen – ohne externe Ressourcen. Das Stripe Customer Portal ist für dich eingerichtet, sodass Kunden Karte oder Tarif ändern, Rechnungen einsehen und kündigen können.

Für die tägliche Verwaltung zeigen die Listen Subscribers und Payments, wer was zahlt, und das journal zeigt jede Statusänderung. Die Admin-Seite verlinkt nur auf das Stripe Dashboard; sie bettet es nicht ein.

Tipps und Fehlerbehebung

Zahlungen aktivieren keine Konten. Fast immer erreicht der Webhook den Server nicht. Prüfe, ob die öffentliche Adresse über HTTPS aus dem Internet erreichbar ist. Selbst wenn der Webhook ausfällt, gleicht Cashier alle 15 Minuten mit Stripe ab, sodass ein verpasstes Ereignis nachgeholt wird – behebe die Adresse trotzdem.

Keine E-Mails an Kunden. Prüfe die SMTP-Einstellungen in Registration; Cashier hat keine eigenen.

Teste, bevor du jemandem etwas berechnest. Nutze Stripe zuerst im Testmodus, führe eine Registrierung über die Kundenseite durch und beobachte in der Liste Subscribers, wie das Konto von ausstehend auf aktiv wechselt.

Behalte die Lizenz im Blick. Ohne gültige Cashier-Lizenz werden keine neuen kostenpflichtigen Anmeldungen angenommen, bis die Lizenz wieder gültig ist – nichts wird gelöscht, und bestehende Abonnenten sind in ihren Daten nicht betroffen. Das Plugin prüft den Abo-Schlüssel einmal täglich; ohne Internet funktioniert es nach der letzten erfolgreichen Prüfung noch 7 Tage weiter.

Halte deine Lizenz aktuell. Eine Lifetime-Lizenz erhält die Versionen, die während ihres Update-Fensters veröffentlicht werden. Wenn die automatischen Updates von Jellyfin eine neuere, nicht lizenzierte Version installieren, stoppt das Plugin mit „version not licensed“, bis du auf seiner Lizenzseite Roll back to x.y.z verwendest. Um das zu vermeiden, richte Jellyfin auf dein privates Plugin-Repository aus, das nur die Versionen anbietet, die deine Lizenz erlaubt.

Tarifwechsel. Weil ein geänderter Preis einen neuen Stripe-Preis erzeugt, behalten bestehende Abonnenten ihren alten Preis, bis sie den Tarif wechseln. Kündige Preisänderungen deinen Mitgliedern an, statt anzunehmen, dass sie automatisch wechseln.

Fazit

Cashier hält die Buchhaltungsseite eines Community-Servers einfach: Tarife nach gleichzeitigen Streams, monatliche oder jährliche Abrechnung, eine kostenlose Testphase, wenn du willst, und eine klare Regel – Zahlung aktiviert, ausbleibende Zahlung sperrt, nichts wird gelöscht. Weil das Geld in deinem eigenen Stripe-Konto landet und Kartendaten deinen Server nie erreichen, behältst du die Kontrolle über Inhalte und Zahlungen.

Starte auf der Cashier-Produktseite, arbeite die Anleitung durch und halte das Changelog für neue Versionen bereit. Wenn sich etwas nicht wie beschrieben verhält, sind die Wissensdatenbank und die FAQ der nächste Anlaufpunkt, und du kannst uns jederzeit kontaktieren.

Dieser Beitrag wurde mit KI-Unterstützung auf Grundlage unserer Produktdokumentation oder der aufgeführten Quellen verfasst und vor der Veröffentlichung automatisch geprüft.

Als Nächstes lesen

Du betreibst Emby, Jellyfin oder Nextcloud?

Unsere Plugins und Apps bringen Live-TV, Untertitel, Registrierung und Sicherheit auf deinen eigenen Server, mit kostenlosem Testzeitraum.