Smart Skip für Jellyfin — Anleitung

Installation

Du brauchst Jellyfin Server 12.2 oder neuer und ein MediaLab-Works-Konto mit einer Lizenz, die das Plugin abdeckt (ein aktives Abonnement, eine Lifetime-Lizenz innerhalb ihres Update-Zeitraums, das Jellyfin-Paket oder den kostenlosen 30-tägigen Test).

Über dein Plugin-Repository (empfohlen). Jellyfin installiert und aktualisiert das Plugin dann von selbst.

  1. Öffne in deinem MediaLab-Works-Konto Licenses → Jellyfin plugin repository und klicke auf Create address. Kopiere sie: Sie ist privat (sie enthält einen Token), also teile sie nicht; du kannst sie jederzeit neu erzeugen oder widerrufen.
  2. Öffne in Jellyfin Dashboard → Plugins → Repositories, klicke auf +, gib einen Namen ein (zum Beispiel MediaLab Works), füge die Adresse ein und speichere.
  3. Suche in Dashboard → Plugins → Catalog nach Smart Skip by MediaLab, klicke auf Install und starte Jellyfin neu.

Das Repository listet nur die Plugins auf, die deine Lizenzen abdecken, und nur die Versionen, die sie erlauben. Seine Download-Links sind signiert und laufen nach wenigen Stunden ab, deshalb liest Jellyfin immer eine aktuelle Liste.

Über den öffentlichen Katalog. https://medialab.works/jellyfin/manifest.json listet jedes veröffentlichte MediaLab-Works-Plugin mit seinem öffentlichen Build; medialab Server fügt ihn von selbst hinzu. Du kannst ihn auf dieselbe Weise hinzufügen, um ein Plugin zu installieren, bevor du einen Schlüssel hast: Das Plugin fragt dann auf seiner Lizenz-Seite nach der Lizenz oder startet den Test. Bei einer Lifetime-Lizenz, deren Update-Zeitraum abgelaufen ist, bleib bei deinem privaten Repository, das nur die Versionen anbietet, die deine Lizenz erlaubt.

Manuell aus einer Zip-Datei.

  1. Lade in Account → Licenses jf-smartskip_x.y.z.zip herunter (der SHA-256 der Datei wird neben dem Button angezeigt).
  2. Entpacke sie in einen neuen Ordner Smart Skip by MediaLab_x.y.z.0 im Jellyfin-Plugins-Ordner:
    • Linux (Paket): /var/lib/jellyfin/plugins/
    • Docker (offizielles Image): /config/plugins/ im Konfigurations-Volume
    • Windows: %ProgramData%\Jellyfin\Server\plugins\
  3. Starte Jellyfin neu.

Lizenzaktivierung

  1. Öffne die Plugin-Seite unter Dashboard → Plugins → Smart Skip by MediaLab und klicke auf License.
  2. Füge deinen Lizenzschlüssel ein und klicke auf Activate with key. Das Plugin kontaktiert den Lizenzserver, bindet den Schlüssel an diesen Jellyfin-Server und zeigt die Lizenz als Active an.
  3. Noch kein Schlüssel? Gib auf derselben Seite deine E-Mail-Adresse ein und starte den 30-tägigen kostenlosen Test (Karte erforderlich, heute nichts zu zahlen) oder kauf eine Lizenz; das Plugin aktiviert sich, sobald die Zahlung fertig ist.

Die Lizenz wird einmal am Tag und bei jedem Start von Jellyfin geprüft. Ohne Internet funktioniert das Plugin noch 7 Tage nach der letzten erfolgreichen Prüfung weiter. Ohne gültige Lizenz stoppt das Plugin seine Arbeit, und nur seine License-Seite funktioniert weiter (Test, Schlüssel, Verlängerung); es wird nichts gelöscht, und alles läuft weiter, sobald die Lizenz wieder gültig ist. Move license (release this server) auf derselben Seite gibt den Schlüssel für einen anderen Server frei.

Updates und Rollback

  • Aus dem Repository: Jellyfin zeigt neue Versionen unter Dashboard → Plugins an und kann das Plugin automatisch aktualisieren; starte Jellyfin neu, um die neue Version zu laden.
  • Über die License-Seite des Plugins: Mit gültiger Lizenz installiert Install update die neueste Version, die deine Lizenz erlaubt, und Roll back to x.y.z geht zur vorherigen Version zurück (zum Beispiel, wenn nach einem Update etwas nicht mehr funktioniert hat). Starte Jellyfin danach jeweils neu. Beide Pakete werden gegen die vom Lizenzserver veröffentlichte Prüfsumme geprüft.
  • Eine Lifetime-Lizenz erhält die Versionen, die während ihres Update-Zeitraums erschienen sind; danach arbeitet das Plugin mit der letzten Version weiter, die es nutzen darf.
  • Nach einem Rollback installiert Jellyfins geplante Aufgabe Update Plugins (beim Start und täglich) die neueste Version wieder, wenn dein Plugin-Repository in Jellyfin hinzugefügt ist. Um eine Weile auf der vorherigen Version zu bleiben, entferne die Auslöser dieser Aufgabe unter Dashboard → Scheduled Tasks und füge sie später wieder hinzu.

Quellcode

Der GPL-3.0-Quellcode jeder Version befindet sich in Account → Licenses (Source code) neben dem Download, als .tar.gz-Archiv aus dem exakten Commit dieser Version.

Automatische Analyse

Es gibt nichts zu installieren außer dem Plugin: Smart Skip nutzt das ffmpeg deines Jellyfin-Servers (chromaprint, signalstats), mit niedriger Priorität und ohne Grafikkarte.

  • Neue Episoden und Filme werden etwa eine Minute nach ihrem Eintreffen automatisch analysiert (eine auf einmal hinzugefügte Staffel wird als Ganzes analysiert).
  • Eine nächtliche Aufgabe (Smart Skip unter Dashboard → Scheduled Tasks, standardmäßig um 03:30) analysiert den Rest der Bibliothek. Analyze now auf der Plugin-Seite startet sie sofort.
  • Intros werden pro Staffel gefunden, indem die Audio-Fingerabdrücke der Episoden verglichen werden, auch bei Episoden mit einer Szene vor dem Vorspann. Die Fingerabdrücke werden aufbewahrt, eine neue Episode lässt also nicht die ganze Staffel erneut decodieren.
  • Recaps („Previously on …“) werden ebenfalls erkannt. Bei eingeschalteter Recap-Erkennung dauert die Analyse einer neuen Staffel etwa doppelt so lange; du kannst die Recap-Erkennung ausschalten.
  • Abspann wird für Episoden und Filme gefunden; Film-Epiloge bleiben geschützt.
  • Eine Datei, deren Analyse fehlgeschlagen ist, wird nicht bei jedem Lauf erneut versucht, sondern nur, wenn sich die Datei ändert.

Einstellungen

Öffne Smart Skip im Jellyfin-Dashboard-Menü, Registerkarte Settings (nur Administratoren): Analyse an oder aus, Intros, Recaps, Abspann, Filme und wie weit gesucht wird: die ersten Minuten für das Intro (standardmäßig 15, höchstens ein Viertel der Episode), die letzten Sekunden für den Abspann von Episoden (450) und von Filmen (900).

Ergebnisse prüfen

Die Registerkarte Overview zeigt, wie viele Titel analysiert sind, mit Intro, Recap oder Abspann, fehlgeschlagen, korrigiert und in der Warteschlange. Die Registerkarte Titles listet sie auf:

  • Jeder Titel zeigt seine confidence (sicher oder wahrscheinlich).
  • Der Filter To review sammelt die Titel, bei denen die Analyse unsicher ist, Episoden ohne Intro in einer Staffel, in der die anderen eines haben, und die fehlgeschlagenen.
  • Der Editor zeigt die exakten Bilder an jeder Grenze (Anfang und Ende von Intro, Recap und Abspann), damit du sie prüfen und korrigieren kannst.
  • Manuelle Korrekturen bleiben erhalten: Eine spätere Analyse überschreibt sie nie, bis du für diesen Titel auf Re-analyze klickst. Eine Korrektur aktualisiert die Jellyfin-Segmente sofort.

In Jellyfin

  • Smart Skip ist ein Media-Segment-Provider: Jellyfin liest die Segmente Intro, Recap und Outro davon, und die Jellyfin-Apps, die Media Segments unterstützen, zeigen ihren eigenen Skip-Button.
  • Wenn nach dem Abspann nichts mehr kommt, läuft das Outro-Segment bis zum Ende der Datei, sodass Jellyfin die nächste Episode anbietet, sobald der Abspann beginnt.
  • Kein Segment beginnt bei 0:00, und ein Intro, bei dem die Analyse unsicher ist, wird nicht an Jellyfin übergeben.
  • In Jellyfin Web wählt jeder Benutzer unter Settings → Playback → Media segments, was bei jedem Segmenttyp passiert; für Recaps ist die Voreinstellung, nichts zu tun.

Was es wohin sendet

Nichts: Die Analyse läuft vollständig lokal. Nur die Lizenzprüfung erreicht medialab.works.

Grenzen

  • „Next time on“-Vorschauen werden nicht erkannt.
  • Remixte Recaps werden nur manchmal erkannt; Smart Skip markiert lieber nichts als den falschen Teil. Prüfe solche Titel in der Liste To review.
  • Eine Staffel mit nur einer Episode bekommt kein Intro: Es gibt nichts, mit dem man sie vergleichen könnte.