"One more thing ..."
The missing Elgato-Software for Linux (EPG/PVR)
Web-Programmzeitschrift und Videorecorder auf Nettop
Neu: Das für Live-TV und Aufzeichnungen zentrale Script mytv wählt für einen Kanal mit frei empfangbarer HD-Variante genau dann stets diese aus, wenn in der Konfigurationsdatei
der Parameter
gesetzt ist.
Keine Keynote, kein App-Store, kein Rollkragenpulli, dafür funktional schlicht und "mächtig":
Ein distributionsunbhängiges, einfach zu installierendes Scriptsystem für eine persönliche Programmzeitschrift mit WAN-Aufnahmefunktion über netzwerkfähige Elgato-Netstream-Produkte und TV-Daten von epgData mit minimalen Hardwareanforderungen (Atom-CPU).
Das Scriptpaket zur Installation, welches Sie noch um Ihre PIN ergänzen müssen, findet sich im Downloadbereich.

Individuelle Programmsicht und ...

... Aufzeichungsplanung
Über Record werden die ausgewählten Sendungen via php-Script record.php als cronjobs auf den Server übernommen.
Ein schmuckloser Response des über record.php und myinject gerufenen Scriptes mycroncheck.rb täuscht über Gehirnschmalz bei Überprüfung der Gesamt-crontab hinweg ;-)

Features
- Fernsehen auf jedem Linux-Nettop/-book im LAN via Kommandozeile
- individuelle Web-Programmzeitschrift mit Aufzeichnungsfunktion
- Multituner-fähig
- gezielte, parallele Ansprache beliebig vieler netzwerkfähiger Tuner (cf. unten)
- TV-Programm wird auf Knopfdruck nach eigenen Kriterien generiert
- Konfigurierbare Zuordnung von Sendern zu Netzwerktunern
- z.B. DVB-T als Default, DVB-S für übrige Sender
- Aufnahmeplanung
- Validierung zulässiger Überlappungen (Zeiten und Tuner)
- minimale Hardwareanforderungen
- Atom-Nettop für 2 parallele Aufzeichnungen ausreichend
- kleine Dateigrößen
- EPG und Aufnahmeprogrammierung auch via Smartphone unterwegs
- Einfacher Installer
- Scripte beliebig erweiter- und konfigurierbar
- auf praktisch jeder Linux-Distribution "ohne Verrenkungen" lauffähig
Voraussetzungen
- Web-Server mit PHP
- Linux-Nettop (Atom-Prozessor ausreichend)
- Einer oder mehrere der netzwerkfähigen Elgato-Tuner
- eyetv netstream DTT (2 Tuner)
- eyetv netstream Sat (1 Tuner)
- eyetv sat Free als Zweit-Tuner per USB verbunden
- nahezu beliebige Linux-Distribution
- Account bei epgdata für TV-Rohdaten
Einschränkungen
- HD-Aufnahmen nur bei öffentlich-rechtlichen Sendern (ohne Verschlüsselung) möglich
- "Starthilfekabel Mac/Windows":
- Der einmalige Sendersuchlauf muss bisher über Mac/Windows angestossen werden.
- Ein Download der Netstream-internen m3u-Dateien ist unter Linux zwar nicht in Firefox, jedoch mit Chromium-Browser möglich.
- Der Installer beinhaltet jedoch fertige m3u-Dateien fuer Sat und DVB-T, deren Inhalt via sed -i -e 's/192.168.178.10/neue IP/g' in einem Schritt auf die IP-Adresse des jeweils eigenen Netstream-Gerätes angepasst werden kann
Übersicht
Topologie am Beispiel meines Heimnetzwerkes (hier natürlich nur ein kleiner Ausschnitt des "Rechenzentrums" ;-) und Scriptübersicht:
- 1 Linux-Nettop als Server (Atom-Prozessor ausreichend)
- Nacht-Batch via cron: Abholen der TV-Rohdaten von epgdata und
Generierung individueller TV-Übersichten, sowie Aufzeichnungsanweisungen für crontab
- Scripte myepg, myepgcron.rb und mytubehtml.rb
- Aufzeichnung von Sendungen mit Script mytv
- Bereitstellen des Aufzeichnungsarchives auf externer Festplatte
- Fernsehempfang oder Sofortaufzeichnung an jedem Linux-Nettop im LAN mit Script mytv via cron
- 4 netzwerkfähige Fernsehempfänger (2 x Sat, 2 x DVB-T)
-
- eyetv Netstream DVB-T (Doppeltuner)
- eyetv Netstream SAT (1 Tuner) und hieran angeschlossen
- eyetv Sat Free (1 Tuner) als Zweit-Tuner
- Individuelle Programmabfrage und Aufnahmeprogrammierung über tv.php

Aufrufbeziehungen
- Nächtlicher cronjob myepg auf Server im LAN
- 30 02 * * * /usr/bin/myepg > /home/heinz/Aufzeichnungen/Programm/myepg.log 2>&1
- Löschen des EPG (Electronic Programme Guide), sowie TV-Rohdaten vergangener Tage
- Laden der TV-Rohdaten für die nächsten 10 Tage von epgdata
- Aufbereiten der Rohdaten
- Entpacken der XML-Rohdaten und Bilder
- Bereinigung der Zeilenenden (DOS nach Unix)
- Zeichensatzkonvertierung (obsolet, da als UTF-8 geliefert)
- Korrektur von Umlautfehlern und Wandlung von Umlauten in HTML-Darstellung
- Ersetzung von Tabulatoren und Bereinigung nicht darstellbarer Zeichen
- Extraktion relevanter XML-Knotenarten
- Wandlung mehrzeiliger Beschreibungstexte in XML-Einzeiler
- Extraktion interessierender Sender
- Klartextwandlung der Bezeichern von Sendern, Genres und Kategorien
- Pfadergänzung für alle Bildreferenzen
- Zusammenfassung verarbeiteter Rohdaten zu Gesamtdatei
- Numerierung (ja, die neue Rechtschreibung möchte hier 2 "m", ich weiß ;-) der Sendungen
- Aufruf von myepgcron.rb
- Generierung (potentieller) cronjob-Zeilen für jede Sendung
- inkl. konfigurierbarem Aufzeichnungs-Nachlauf
- Ersetzen von (HTML-)-Umlauten in ASCII und Fehlerkorrektur analog oben
- Bonbon: Senderabhängige Auswahl des Aufnahmegerätes (DVB-T, sofern möglich, sonst DVB-S)
- Live-TV und Direktaufzeichnung auf jeder Linux-LAN-Station mit mytv (gänzlich unabhängig vom Server)
- Normierung von Senderbezeichnern und Extraktion zugehöriger Streams aus m3u-Datei der DVB-T-S und DVB-S-Tuner
- Aufruf von mencoder für Aufzeichnungen mit konfigurierbaren Parametern
- Auswahl der Tonspur konfigurierbar
- Programmzeitschrift mit Aufzeichnungsfunktion im Web-Browser
- Php-Script tv.php
- Aufzeichnung durch "Häckchen setzen" und Button record
- PHP-Script record.php ruft Script myinject
- Prüfung, ob Aufzeichnungsjob bereits vorliegt
- Sortierung der crontab
- Aufruf von mycroncheck.rb
- Verifikation der crontab auf
- Erlaubte Zahl von Sendungsüberlappungen insgesamt und je Aufnahmegerät
Legende
Programmfluss: |
orange
|
Aufrufbeziehungen: |
grün
|

Live-TV
4 x Live-TV auf Atom-Nettop (2 x DVB-T, 2 x Sat) (kein "Fake", sondern Screenshot)

mytv-Betriebsmodi
- Live-TV
- Auswahl von Sender, Tuner und Wiedergabesoftware (konfigurierbar)
- Direktaufzeichnung
- Auswahl von Sender, Tuner, Dauer und Name der Aufzeichnung

TV-Programm und Aufzeichnung via WAN/Smartphone
Die (für Mobilgeräte einfach optimierbaren) EGP-Sichten erlauben die Aufzeichnungsplanung über Internet, hier an den Beispielen Blackberry

und Samsung Smartphone S2

Aufzeichnungsarchiv auf externer Platte
Die resultierenden Aufzeichnungen haben sehr kleine Dateigrößen. Ein Atom-Nettop kann 2 Sendungen parallel aufzeichnen.

EPG: |
Electronic Programming Guide |
PVR: |
Personal Video Recorder |
Installation
Das Programmpaket epg_unlicensed.zip, welches Sie um die PIN Ihres epgdata-Accounts ergänzen müssen, findet sich im Downloadbereich.
Bitte editieren Sie dort myinstall und passen die Variablen im Kopfbereich an.
Installationsvoraussetzungen
- Ein Elgato Netstream DTT und/oder Elgato Netstream Sat (ggf. mit gekoppeltem Zweittuner Elgato Sat Free)
- Account bei epgdata.com (sofern Sie nicht nur Live-TV mit mytv, sondern den EPG nutzen möchten)
- Ein normaler Linux-Account, unter welchem mytv und cronjobs laufen
- Die ggf. nachzuinstallierenden Module/Programme/Pakete
- ruby
- rubygems
- dos2unix
- perl
- mencoder
- gxine
- ggf. andere in mytv konfigurierte Player Ihrer Wahl
- Apache mit PHP (für EPG und Aufzeichnungsprogrammierung)
Impressum und Datenschutzerklärung