MediaTerm


Mit dem Bash-Skript MediaTerm lassen sich Filme aus den Mediatheken der öffentlich-rechtlichen Fernsehsender ressourcenschonend im Linux-Terminal suchen, abspielen, herunterladen und als Bookmarks speichern. Für das Abspielen der Filme wird standardmäßig der Medienplayer mpv eingesetzt, der aus den Paketquellen der gängigen Linux-Distributionen installiert werden kann. Vorausgesetzt werden außerdem wget, ffmpeg und xz bzw. xz-utils.

Bei der ersten Suchanfrage mit MediaTerm erfolgt (nach Bestätigung durch den Benutzer) automatisch ein Download der Filmliste (Filmliste-akt.xz) von MediathekView, die im – ebenfalls automatisch vom Skript angelegten – Verzeichnis $HOME/MediaTerm entpackt und aufbereitet wird. Später lässt sich die Filmliste jederzeit durch Verwendung der Option "-u" aktualisieren.

Ein Überblick über alle Funktionen von MediaTerm enschließlich Anwendungsbeispielen lässt sich mit "mediaterm -h" aufrufen.

Lizenz: MediaTerm wird als freie Software unter der Lizenz GNU GENERAL PUBLIC LICENSE, GPLv3 (inoffizielle deutsche Übersetzung) zur Verfügung gestellt.

MediaTerm 8.0 herunterladen (anschließend nicht vergessen, Skript ausführbar zu machen: chmod +x /pfad/zu/mediaterm ... oder per Kontextmenü des Dateimanagers). Der Code des Skripts kann auch im Browser angezeigt und per Copy&Paste kopiert werden.

Hier können ältere Versionen (ab Version 5.1.1) heruntergeladen werden (Rechtsklick auf gewünschte Version und "Ziel speichern unter ..." wählen).

Neu in Version 8.0 (2019-10-18):
Die AKTUALISIERUNG DER FILMLISTE (Option -u) wurde grundlegend überarbeitet:
• Wurde bisher die Filmliste von einem zufällig ausgewählten Verteiler-Server heruntergeladen, so erfolgt der Download jetzt über den zentralen Load-Server von MediathekView. Die automatische Weiterleitung an einen passenden Verteiler trägt zur gleichmäßigen Verteilung der Serverlast bei; erfolglose Download-Versuche von vorübergehend vom Netz genommenen Verteilern werden ggf. verhindert.
• Um Mehrfach-Downloads bereits gespeicherter Filmlisten nach Möglichkeit auszuschließen, erfolgt vor dem Download eine Aktualitätsprüfung. Ab Erstellungszeit der lokalen Liste kann frühestens 30 Minuten nach der übernächsten vollen Stunde wieder aktualisiert werden. (Beispiel: Wurde die lokale Liste um 10:15 Uhr erstellt, ist ein neuer Download am selben Tag nicht vor 12:30 Uhr möglich; Erstellungsdatum und -uhrzeit der lokalen Filmliste lassen sich per Option -v anzeigen).
• Beim Download der Filmliste wird der User-Agent "MediaTerm" an den Server übertragen.
• Der unerwünschte Effekt einer leeren Filmliste nach einem gescheiterten Verbindungsaufbau zum MediathekView-Server wurde behoben; eine bereits lokal gespeicherte Filmliste bleibt in dem Fall erhalten.

Weitere Änderungen:
• Die Wiedergabe eines Livestreams (Option -l) in geringerer Auflösung (Kommando m<Filmnr.>) funktioniert nun auch, wenn die m3u8-Playlist des Senders auf relative URLs verweist.
• Die Option -p zur Wahl eines anderen Medienplayers als dem standardmäßig verwendeten mpv wurde entfernt. Wer die Filme mit einem alternativen Player abspielen möchte, kann im Abschnitt "Vorbelegte Variablen" des Skripts (ziemlich am Anfang, direkt nach dem Copyright-Block) die Variable "player" einfach entsprechend anpassen.

Neu in Version 7.6.1 (2019-10-01):
• Fehlerhafte Film-Sortierung nach Sendezeit (Optionen -s und -t) in Systemen mit aktueller gawk-Implementierung wurde behoben. Eventuell auftretende Warnmeldungen beim Download der Filmliste (Option -u), die ebenfalls von gawk erzeugt werden, konnten leider nicht behoben werden, sind aber für die Funktionsfähigkeit unerheblich (hier unter gawk-Version 5.0.1).
• Anpassung der Linkcheck-Funktion für Bookmarks an neue Wget-Versionen.

Neu in Version 7.6 (2019-08-21):
• Lästige Warnmeldungen des Browsers, die gelegentlich beim Aufruf von Sendungs-Internetseiten (Kommando w<Filmnr.>) auftraten und die Rückkehr zur MediaTerm-Eingabezeile verhinderten, werden nun unterdrückt.
• Bei Aktualisierung der Filmliste (Option -u) wird die URL der herunterzuladenden Datei jetzt vor dem Download angezeigt – und somit auch der genutzte Verteiler (1 bis 6).
• Die störende Anzeige von Escape-Sequenzen für Zeilenumbrüche in einigen Film-Beschreibungen wurde behoben. Die Zeilenumbrüche werden allerdings von MediaTerm u.a. aus Platzgründen nicht umgesetzt, sondern durch ein Leerzeichen ersetzt.
• Code für die Korrektur inzwischen nicht mehr auftretender Fehler in der Filmliste wurde entfernt (Konvertierung fehlerhafter SR-URLs [siehe Version 7.5-sr] und Ergänzung einer fehlenden Klammer [siehe Version 7.4]).

Neu in Version 7.5-sr (2019-08-14):
Die vom Skript genutzte Filmliste von MediathekView enthält für zahlreiche Filme des Senders "SR" fehlerhafte URLs. Diese werden in der MediaTerm-Ergebnisliste zwar in der falschen Form angezeigt, beim Abspielen oder Download der zugehörigen Filme jetzt jedoch automatisch in eine gültige URL konvertiert. Diese Behelfs-Version des Skripts wird nur so lange als Download zur Verfügung gestellt, wie die Fehler in der Filmliste bestehen.

Neu in Version 7.5 (2019-06-14):
• Die Optionen -s und -t zur Sortierung der Filmtreffer nach Sendedatum liefern jetzt – innerhalb des jeweiligen Datums – auch eine Feinsortierung nach Uhrzeit.
Libav wird von MediaTerm nicht mehr unterstützt. Die Installation von FFmpeg ist Voraussetzung für den Download von Filmen im m3u8-Format.

Neu in Version 7.4.1 (2019-05-16):
Ein Fehler im Text der Suchhilfe (= Kommando H) wurde korrigiert.

Neu in Version 7.4 (2019-04-29):
• Seit Version 7.2 nicht mehr funktionierende Option -B wurde repariert.
• Fehlende schließende Klammer in einem Filmeintrag machte Probleme bei Aufbereitung der Filmliste und wird jetzt automatisch ergänzt.

Neu in Version 7.3 (2019-04-15):
Die teilweise vom Format hh:mm:ss abweichenden Angaben der Filmlänge bei Nutzung der Optionen -L und -K wurden korrigiert.

Neu in Version 7.2 (2018-11-08):
• Die Umstellung des Video-Downloads von cURL auf Wget (in Version 7.1) war fehlerhaft und wurde korrigiert.
• Nachdem sich gezeigt hatte, dass die in Version 7.0 eingeführten Optionen -K und -L nur mit der awk-Implementierung gawk funktionierten, klappt die Filterung nach Filmlänge jetzt auch unter Linux-Systemen, die mawk nutzen.
• Der vollständige Such- und Kommandoverlauf einer MediaTerm-Sitzung kann nun in der internen Eingabezeile mit den Pfeiltasten durchgeblättert werden. Hierzu wird im Verzeichnis $HOME/MediaTerm ggf. eine History-Datei angelegt, die bei Beenden des Skripts automatisch wieder gelöscht wird.

Neu in Version 7.1 (2018-10-01):
Diese Version bringt nur kleinere Änderungen, die für die praktische Nutzung keine nennenswerten Auswirkungen haben dürften.
• Sämtliche Download-Vorgänge wurden (wieder) von cURL auf Wget umgestellt.
• Die Aufbereitung der entpackten Filmliste wurde gestrafft, sodass das Skript keine Interimsdateien mehr anlegen und löschen muss.
• Geringfügige Änderungen der Hilfetexte, insbesondere enthält der less-Prompt jetzt einen Hinweis, dass die Hilfe mit Taste q beendet werden kann.

Neu in Version 7.0 (2018-09-03):
• Die beiden neuen Optionen -K (kürzer/gleich) und -L (länger/gleich) erlauben eine Filterung nach der Filmlänge.
• Aus Gründen der besseren Merkbarkeit wurden die beiden Optionen für die Eingrenzung des Zeitraums von bisher -d und -e zu -A ("ab") und -B ("bis") umbenannt.
• Per Option -p können, falls gewünscht, die Videos mit einem anderen als dem voreingestellten Medienplayer mpv abgespielt werden. (Soll dauerhaft ein alternativer Player verwendet werden, empfiehlt es sich, den Aufruf von MediaTerm mit der neuen Option als Alias einzurichten.)
• Mehrere in Anführungszeichen eingeschlossene Suchbegriffe werden jetzt auch aus MediaTerms interner Eingabezeile korrekt als Phrase (exakte Wortfolge) gesucht – bisher hatte dies nur bei der Suche aus der Terminal-Kommandozeile funktioniert.
• Die Versionsanzeige (Option -v) gibt nun u.a. auch Auskunft über die Anzahl der Filme in der aktuell genutzten Filmliste.

Neu in Version 6.5 (2018-03-18):Bei der Aufbereitung der Filmliste wurden in Einzelfällen falsche Zeilenumbrüche gesetzt, was in der Trefferanzeige zu auseinandergerissenen oder inkorrekt formatierten Film-Datensätzen führte. Dieser durch einen unvollständigen Trenner verursachte Fehler wurde behoben.
Bisher konnten Livestreams standardmäßig nur in der besten Qualität abgespielt werden. Jetzt lässt sich bei Bedarf ein Livestream per vorangestelltem m (m<Filmnr.>) auch in geringerer Auflösung abspielen (genauer: in der größten Auflösung kleiner/gleich 1024 px, je nach Verfügbarkeit). Diese Option hat nur eine Auswirkung für Streams, deren höchste verfügbare Auflösung größer als 1024 px ist.
Version 6.5.1 (2018-05-02): Fehler in der Extraktion der URLs für Livestreams in geringerer Auflösung behoben.

Neu in Version 6.4 (2018-01-19): Da unter manchen Linux-Installationen die auf "grep" fußende Suche extrem langsam sein konnte (wegen der grep-Option "--ignore-case"), wurde die Suchfunktion nun auf "sed" umgestellt. Außerdem neu: Der Nutzer erhält im Bookmark-Modus bei der Eingabe von Befehlen mit nicht existierenden Bookmark-Nummern konsequent einen entsprechenden Hinweis. Beim Update der MediathekView-Filmliste werden nur die Verteiler 1, 3, 5 und 6 berücksichtigt, da es – zumindest mit dem im Skript verwendeten Download-Befehl – mit den Verteilern 2 und 4 permanent scheiterte. -- Version 6.4.1 (2018-01-22): Typo korrigiert, der das Abspielen in höherer/niedrigerer Auflösung verhinderte.

Neu in Version 6.3 (2017-08-12): Nun werden auch Filme mit M3U8-URLs als MP4-Videos heruntergeladen. Als neue Abhängigkeit muss hierfür entweder ffmpeg oder libav-tools installiert sein. Außerdem wurden unschöne Fehlfunktionen/Falschausgaben behoben, die bei den Kommandos w1, d1, i1 etc. nach Start von MediaTerm ohne Suchanfrage auftraten. -- Version 6.3.1 (2017-08-22): Beim Filmdownload werden ggf. Schrägstriche (/) im aus dem Filmtitel generierten Dateinamen durch Bindestriche (-) ersetzt, da sonst ein nicht existierendes Downloadverzeichnis suggeriert wird und der Download fehlschlägt. -- Version 6.3.2 (2017-08-25): Formatierung des Hilfetextes zwecks besserer Lesbarkeit wiederhergestellt.

Neu in Version 6.2 (2017-08-09): Bei jedem Filmdownload kann der Benutzer nun Speicherort und Dateinamen frei wählen – oder stattdessen die vorgeschlagene Speicherung im aktuellen Arbeitsverzeichnis ($PWD) unter dem Filmtitel (+ Dateiendung) akzeptieren. -- Wer sich ungerne durch lange, unübersichtliche Trefferlisten scrollt hat jetzt die Alternative, sich wahlweise nur 5 oder 10 Treffer auf einmal anzeigen zu lassen (Kommandos "a" bzw. "A") und in den Suchergebnissen zu "blättern" (Kommandos "+" und "-"). -- Die Option "-v" zeigt nun zusätzlich zur MediaTerm-Version auch Erstellungsdatum und -uhrzeit der genutzten Filmliste an (dies funktioniert erst nach einer ersten Aktualisierung der Filmliste per Option "-u").

Neu in Version 6.1 (2017-07-12): Bei der Bestätigung einer Filmauswahl auf der internen Kommandozeile werden neben dem Titel jetzt auch Sender und Thema angezeigt. Wird eine Suche mit der Option "-o" (Farbdarstellung deaktiviert) oder "-w" (worterhaltende Zeilenumbrüche deaktiviert) ausgeführt, so bleibt diese auch für nachfolgende Suchen aus der internen Kommandozeile wirksam. Fehlermeldung, falls bei Option "-n" kein Suchstring eingegeben wurde. Existiert das Ziel eines Bookmarklinks nicht mehr, so zeigt Kommando "a<Bookmarknr.>" eine entsprechende Meldung an, statt MediaTerm zu beenden.

Neu in Version 6.0 (2017-06-01): Vollständige mawk-Kompatibilität; eine Installation von gawk ist nicht mehr erforderlich. Aufwertung der internen Kommandozeile, aus der nun auch Recherchen ausgeführt werden können. Filmlisten-Feld "Thema" wird jetzt von der Suche ausgewertet und in den Einträgen der Trefferliste angezeigt. Begrenzung der Recherche auf einen gewünschten Zeitraum (Optionen "-d" und "-e"). Ausgabe der Trefferliste sortiert nach Sendedatum (Optionen "-s" und "-t"; die Option zur Unterscheidung zw. Groß- und Kleinschreibung wurde von bisher "-s" auf "-g" gelegt). Gezielter Ausschluss von Suchbegriffen mit der Tilde (~) als neuem Operator. Download von Filmen auch in niedriger und hoher Qualität. Linkübersicht zur Sendung: Das Kommando "i<Nr.>" listet alle zur Treffernr. gehörigen Links auf, d.h. die URLs der verfügbaren Video-Qualitäten und der Internetseite zur Sendung. Direkter Wechsel zwischen den Modi "Suche/Treffer" und "Bookmarks". Kommando zum Löschen von Bookmarks. Neues Kommandokürzel "z", um die letzte Ergebnisliste bzw. die Bookmarks neu zu laden (hilfreich, wenn nach mehreren Filmaufrufen die Treffer bzw. die Bookmarks im Terminal nach oben gerutscht sind). – Außerdem zahlreiche kleinere Verbesserungen und Korrekturen.

Neu in Version 5.5 (2017-05-07): Leider zeigte sich schnell, dass MediaTerm mit der awk-Implementierung mawk an mehr Stellen, als zunächst vermutet, zu Fehlern führt. Deshalb wurde awk explizit durch gawk ersetzt!

Neu in Version 5.4 (2017-05-06): War awk nur in der Implementierung mawk (statt gawk) installiert, funktionierte die Filmauswahl auf der internen Kommandozeile nicht. Dieser Bug konnte (hoffentlich) behoben werden, indem der fragliche awk-Befehl durch einen Befehl ersetzt wurde, der mit reinen Bash-Mitteln auskommt.

Neu in Version 5.3 (2017-05-05): Für die interne Kommandozeile der Bookmarks (Option "-b") gibt es mit dem neuen Kommando "c" jetzt einen Linkchecker, um die Gültigkeit aller (also gerade auch älterer) Bookmark-Links zu prüfen. Da diese Funktion mit curl umgesetzt wurde, wurden auch alle anderen Download-Funktionen des Skripts von wget auf curl umgestellt, um die Abhängigkeiten möglichst gering zu halten. Version 5.3.1 (2017-05-06): Wegen eventueller Unverträglichkeit mit individuellen Konfigurationen (?) readline-Funktionalität aus read-Befehl für die interne Kommandozeile entfernt und die eingelesene Variable "$lfdnr" konsequent in den if-Bedingungen gequotet. Außerdem das Ausbleiben der Fehlermeldung bei Eingabe ungültiger Kommandos behoben.

Neu in Version 5.2 (2017-04-29): Eine exakte Wortsuche wurde eingerichtet: Ein dem Suchstring vorangstelltes Pluszeichen ("+") beschränkt die Suche auf das Einzelwort; Teilwörter bleiben unberücksichtigt. So findet +mut "Mut" bzw. "mut", nicht jedoch "Mutlangen", "Armut" oder "schmutzig". Außerdem gibt es ein neues Kommando ("w"), um zu Filmen die zugehörige Webseite im Standardbrowser zu öffnen. – Vier Versionen in vier Tagen: Jetzt funktioniert das Skript erst einmal zu meiner Zufriedenheit, und ich will mich wieder analogen Interessen zuwenden ... :-)

Neu in Version 5.1 (2017-04-27): Hinter den Filmtiteln in der Trefferliste findet sich jetzt jeweils eine Kennzeichnung zur eventuellen zusätzlichen Verfügbarkeit in niedriger (n) oder hoher (h) Auflösung. Version 5.1.1 (2017-04-28): In Zeile 127 war mein persönlicher Home-Pfad hineingerutscht -> korrigiert!

Neu in Version 5.0 (2017-04-26): Die Kommandounterstützung zum direkten Abspielen und Herunterladen der Filme wird jetzt nach jeder Recherche automatisch angeboten; die bisherige Option "-p" entfällt. Die interne Kommandozeile lässt sich bei Bedarf jedoch mit der Option "-n" ausblenden. Hinzugekommen sind Kommandos, um die Filme in einer – sofern verfügbar – niedrigeren oder höheren Auflösung abzuspielen. Die Trefferliste führt jetzt zu jedem Film auch den Sender auf (der sich in früheren Versionen nur aus der URL des Streams erschließen ließ). Die Nutzung von youtube-dl durch mpv wurde (außer für Livestreams) deaktiviert, was die Ladezeit der Videos verkürzt. Die Darstellung der Trefferliste ist nun lesbarer, da Zeilenumbrüche nicht mehr innerhalb von Wörtern erfolgen. ACHTUNG: Nach dem "Upgrade" auf diese Version muss die MediathekView-Filmliste – wegen einer neuen Formatierung durch das Skript – neu heruntergeladen werden; dies wird beim ersten Start automatisch angeboten.

Neu in Version 4.0 (2017-04-10): Anders als in den Vorgängerversionen greift die Filmsuche jetzt auf eine entpackte und mit eingefügten Zeilenumbrüchen aufbereitete Filmliste zu. Dies beschleunigt die Recherche deutlich.


Impressum: Martin O'Connor, Leimgrubengasse 7, 79104 Freiburg i. Br., Deutschland, mar.oco@arcor.de