Mediathekview erlaubt das Streamen und den Download von Sendungen aus den öffentlich-rechtlichen Mediatheken. Das Projekt Mtv-cli verlagert das Programm auf die Kommandozeile und macht es so fit für Skripte und Server.
Einen Artikel zum Einrichten und zum Betrieb der Anwendung Mediathekview auf einem RasPi gab es vor einigen Monaten hier im Magazin [1]. Erik Bärwaldt empfahl damals dafür zu Recht ein leistungsfähiges Raspberry-Pi-Modell wie einen RasPi 4 mit 4 GByte RAM, denn das in Java entwickelte Programm verlangt nach viel Arbeitsspeicher.
Vor ein paar Jahren stand der Autor vor demselben Problem. Am Fernseher hing ein Pi Zero W – völlig ausreichend für die Kost, die deutsche Mediatheken ihren Nutzern anbieten. Sendungen aus dem öffentlich-rechtlichen Angebot wanderten dann per Java-Anwendung auf den Desktop und von dort noch einmal über das Netz auf den Zero. Das dauerte nicht nur, sondern war auch unbequem.
Not macht erfinderisch, und so entstand die Idee einer schlanken, kommandozeilentauglichen Version der Mediathek-Anwendung mit dem Arbeitstitel mtv_cli. Den Namen hat das Projekt behalten, die Kommandozeile spielt allerdings nur noch eine untergeordnete Rolle.
Historisches
Die Anforderungsliste war ursprünglich nicht sonderlich lang: Als Basis sollte Python samt einer SQL-Datenbank (SQLite) dienen. Das mühsame Zusammensuchen der Angebote aller Mediatheken war schon durch die Java-Anwendung gelöst, ergo sollte auch die neue Python-Anwendung auf dieselbe Datenbasis aufsetzen.
Neben einer einfachen, schlanken Schnittstelle für die Auswahl der herunterzuladenden Medien wollte der Autor auch eine Art Abofunktion, also den automatischen Download von wiederkehrenden Sendungen wie zum Beispiel “Terra X”. Eine weitere wichtige Funktion war die Trennung der Filmauswahl vom eigentlichen Herunterladen. Letzteres kann ohne Probleme in den Nachtstunden passieren, wenn auf der DSL-Leitung nicht wichtigere Dinge Vorrang haben.
Das Ganze wurde dann als Python-Anwendung mit einer Ncurses-Oberfläche umgesetzt, ideal für einen Server und auch via SSH bedienbar (Abbildung 1). So richtig bequem war die Lösung aber immer noch nicht. Deshalb kam dann noch ein minimalistischer Webserver hinzu, der alle wichtigen Funktionen per Weboberfläche zugänglich macht – dazu später mehr.
Ein Versuch, Mtv_cli in das Originalprojekt zu integrieren, scheiterte – eine entsprechende Anfrage wurde nie beantwortet, weder positiv noch negativ. Stattdessen haben diverse Anwender wichtige Beiträge für das neue Projekt geleistet und so dafür gesorgt, dass der Code nicht langsam verrottet. Ganz ideal ist die Situation trotzdem nicht: Änderungen (zum Beispiel an der URL der Filmliste) bekommt Mtv_cli erst dann mit, wenn die alte URL nicht mehr funktioniert.
Einrichtung
Die Installation aus dem Projekt-Repository [2] funktioniert auf allen Debian-basierten Kleincomputern mit den Befehlen aus Listing 1. Nutzen Sie einen anderen Standard-User als pi, dann müssen Sie dem Befehl aus Zeile 4 noch den Benutzernamen übergeben. Die Hardwareanforderungen der Anwendung halten sich in engen Grenzen, im Prinzip genügt ein Pi Zero W. Beim Autor läuft die Anwendung inzwischen auf einem kleinen Server auf Basis eines Odroid HC1 mit Armbian. Der eigentliche Mediaplayer (Kodi auf einem RasPi 3A+) greift dann per NFS auf das Dateisystem mit den Filmen zu.
Listing 1
Installation
$ git clone https://github.com/bablokb/mtv_cli $ cd mtv_cli ### User nur notwendig, falls nicht pi $ sudo tools/install-mtv_cli [User] ### ... Konfiguration ... $ sudo systemctl start mtv_web.service
Vor dem Start des Diensts (Zeile 5) müssen Sie bei Bedarf noch zwei Konfigurationsdateien anpassen. In der recht umfangreichen /etc/mtv_cli.conf (Listing 2) steuert die Variable DATE_CUTOFF, wie das Programm beim Aktualisieren der Datenbank mit alten Einträgen umgeht. Der Vorgabewert entsorgt alle Einträge mit einem Alter von mehr als 30 Tagen. Analog verwirft DAUER_CUTOFF alle Beiträge mit einer kürzeren Spieldauer als die angegebene Zahl an Minuten. Das verhindert, dass kurze Trailer die Suchliste vollmüllen.
Die weiteren Variablen steuern die Zahl der parallelen Transfers (NUM_DOWNLOADS), den Zieldateinamen (ZIEL_DOWNLOADS) und die Qualität. Bei Letzterer bietet sich gegebenenfalls ein Wechsel auf HD an. Die Einträge unterhalb von [WEB] konfigurieren den internen Webserver.
Achten Sie insbesondere beim Zieldateinamen darauf, dass das gewählte Verzeichnis existiert. Die sinnvolle Anzahl paralleler Downloads hängt von der Internet-Anbindung ab. Es gibt Sender, die selbst 16-Mbit/s-Leitungen nicht sättigen. Was für das Streamen genügt, ist aber für den Vorab-Download viel zu wenig.
Listing 2
/etc/mtv_cli.conf
### Allgemeine Konfiguration
[CONFIG]
MSG_LEVEL: INFO
DATE_CUTOFF: 30
DAUER_CUTOFF: 5
NUM_DOWNLOADS: 2
ZIEL_DOWNLOADS: /data/videos/{Sender}_{Datum}_{Thema}_{Titel}.{ext}
CMD_DOWNLOADS: wget -q -c -O '{ziel}' '{url}'
CMD_DOWNLOADS_M3U: wget -q -O - '{url}' | grep '^http' | wget -q -O '{ziel}' -i -
QUALITAET: LOW
### Web-spezifische Konfiguration
[WEB]
PORT: 8026
HOST: 0.0.0.0







