Projekte

Mit Serius Serien suchten

SeriusWer weder ein Netflix- noch ein Amazon-Prime Abo hat, aber trotzdem Serien schauen möchte, kann sich bei den unzähligen Serien-Portalen bedienen. Inwieweit das in deinem Land legal oder moralisch vertretbar ist, muss jede für sich selbst entscheiden.

Ein Problem bei den anmeldefreien Portalen ist, dass man oft vergisst, bis zu welcher Folge man eine Serie gesehen hat und siebzehn mal klicken muss, bis die gewünschte Folge endlich läuft. Ich verwende Serius auf einem Raspberry-Pi der hinter meinem Fernseher hängt. Mit meiner kleinen Rii-Tastatur ist es ziemlich mühsam sich bis zur aktuellen Serienfolge durchzuklicken.

Etwas Abhilfe schafft mein kleines Programm 'Serius'.

 

 

Serius ist ein Python-Skript ohne weitere Abhängigkeiten. Es bietet folgende Funktionen:

  • Generieren von Staffel/Folgen-Dateien auf der Basis des Serienportals S.TO

  •  Folgen-Counter für die Serie, damit man weiss wo man ist

  •  Abspielen der nächsten Folge auf Knopfdruck, ohne Klick-Orgie im Portal

 

Installation

Man lädt die ZIP-Datei von Serius herunter und entpackt die Datei in ein beliebiges Verzeichnis. In der ZIP-Datei befinden sich folgende Dateien:

 
Datei Bedeutung
counter.txt enthält den Folgenzähler und den Namen der Serie
lost.txt enthält die Nummern aller Staffeln und Folgen einer Serie (im Beispiel für die Serie 'Lost')
serius.desktop Starter für den Gnome-Desktop
serius.png Icon für den Starter
serius.py das eigentliche Python-Skript
serius.sh Shell-Skript zum Starten des Python-Skripts


Bevor Serius verwendet wird, sollten einige Anpassungen gemacht werden. Um die Desktop-Datei und das Shell-Skript zum Starten einzusetzen, müssen darin die Pfade zur Datei Serius.py korrigiert werden. Das Skript verwendet unterschiedliche Webbrowser in Abhängigkeit von der Systemarchitektur, z.B. Chromium auf Raspberry-Pi oder Firefox auf Intel oder AMD Geräten. Falls man das ändern möchte, muss im Python-Skript die Funktion 'show_notification' geändert werden. Was dort zu ändern ist, ist selbsterklärend. Zum Schluss ist es ratsam, die beiden Dateien serius.py und serius.sh ausführbar zu machen.

 

Bedienung

Serius kann entweder direkt im Termin gestartet werden (./serius.py) oder über das Shell-Skript oder die Desktop-Datei aufgerufen werden. Die Desktop-Datei ruft das Shell-Skript auf. Es hängt vom Gerät und Desktop ab, welche Variante die bessere ist. Da bei mir Serius auf einem Raspberry-Pi läuft, nehme ich einen LXDE-Starter, der das Shell-Skript aufruft. Nach dem Start ohne Parameter gibt Serius nur eine kleine Hilfe aus:

========================================
SERIUS Version 0.05 - 16.04.2020
----------------------------------------
n = play next episode
r = reset episode counter
g = generate playlist for one series
========================================

Im Normalbetrieb startet man das Programm mit dem Parameter 'n' um die nächste Folge aufzurufen. Diesen Parameter verwendet auch das Shell-Skript. Beim ersten Aufruf oder beim Wechseln der Serie, muss der Parameter 'g' benutzt werden. Dann fragt Serius nach dem Namen der Serie und generiert die Liste der Staffel- und Folgennummern aus dem Serienportal S.TO. Ausserdem wird der Folgen-Counter auf Null gesetzt. Dieser Zähler kann auch separat mit dem Parameter 'r' genullt werden.

 

Funktionsweise

Beim Starten mit dem Parameter 'n' lädt Serius aus counter.txt den Zähler und den Namen der Serie, z.B.: 0 und 'Lost'. Entsprechend dem Seriennamen wird dann die gleichlautende Liste (z.B.: lost.txt) geladen und mittels des Zählers die aktuell zu zeigende Folge ermittelt. Daraus wird eine URL konstruiert um auf die Folgenseite des Serienportals S.TO zu springen. Dort wird die URL des Content Providers bei dem die Video-Datei dieser Folge tatsächlich liegt ermittelt. Zum Schluss wird eben diese Webseite aufgerufen; den Play-Button muss man selbst anklicken.

Ursprünglich hatte ich geplant, die Video-Datei direkt als Stream über einen internen Player abzuspielen. Da die Adresse der Video-Datei aber vom Content Provider kryptografisch geschützt ist, liess sich das nicht machen. Deshalb wird nun lediglich die Webseite aufgerufen.

 

Qualität

Nun ja, Serius ist weder schön noch gut getestet. Rechnet damit, dass es einmal nicht funktioniert. Ich werde weiter daran basteln und neue Version hier bereitstellen. Andererseits ist das Skript so einfach, dass es sich auch gut für eigene Verbesserungen eignet. Der Code ist nur 200 Zeilen lang, übersichtlich und leicht zu verstehen.