CapturePlugin - Kaffeine
Aus TV-Browser Wiki
Falls man den DVB-Empfang in Kaffeine eingerichtet hat, kann man mittels dieser Anleitung per CapturePlugin aufnehmen.
Zu Leerzeichen im Sendernamen / Titel gibt es folgende Diskussion: Diskussion
Inhaltsverzeichnis
Installation
- DCOP-Bindings für Python installieren (Paket python-dcop bei Debian/Ubuntu).
Ab Ubuntu 9.04, Jaunty Jackalope, aufwärts ist das Paket python-dcop nur noch über lauchpad.net-Quellen verfügbar. Falls ein Installation von dort, bzw. eine Änderung der Paketquellen, nicht erwünscht ist, sollte man das alternative Schell-Script benutzen. Das verwendete Programm dcop befindet sich im Paket kdelibs4c2a.
Installation des Paketes python-dcop. Unter Ubuntu/Gnome: Anwendungen --> Zubehör --> Terminal.
Eingabe:sudo apt-get install python-dcop
Installation des Paketes kdelibs4c2a:sudo apt-get install kdelibs4c2a
- Das unten angegebene Script mit dem Namen
kaffeine-tvbrowser-wrapper
erstellen und abspeichern. - Script lesbar und ausführbar machen (
chmod a+rx kaffeine-tvbrowser-wrapper
) - Das Script in den CapturePlugin-Einstellungen als "Applikation" angeben.
In der deutschen Version von TV-Browser findet man dies unter: Plugins --> Aufnahmesteuerung, hier Tab. Geräte. - Als Parameter folgendes für »Aufnahme« eintragen:
{start_year} {start_month} {start_day} {start_hour} {start_minute} {length_minutes} "{isset(channel_name_external_quiet,channel_name)}" "{title}"
Die Anführungszeichen beim Kanalnamen und Titel sorgen dafür, dass diese Parameter auch korrekt mit Leerzeichen an die Scripte übergeben werden. - Als Parameter bei »Löschen« irgend etwas eintragen. Z.Bsp. ein einzelnes Wort:
remove
Script kaffeine-tvbrowser-wrapper
#!/usr/bin/env python import sys import math import pcop import pydcop if sys.argv.count < 9: print 'zu wenig Parameter' exit def dd(num): if int(num) < 10: return "0" + str(num) else: return str(num) year = dd(sys.argv[1]) month = dd(sys.argv[2]) day = dd(sys.argv[3]) hour = dd(sys.argv[4]) minute = dd(sys.argv[5]) length = int(sys.argv[6]) title = sys.argv[8] channel = sys.argv[7] name = year + "-" + month + "-" + day + "_" + hour + "-" + minute + "_" + title datetime = year + "-" + month + "-" + day + "T" + hour + ":" + minute + ":00" duration = dd(int(math.floor(length // 60))) + ":" + dd(length % 60) + ":00" pydcop.anyAppCalled("kaffeine").KaffeineIface.dvbNewTimer(name, channel, datetime, duration)
Alternatives Shell-Skript kaffeine-tvbrowser-wrapper
Leerzeichen im Sendernamen und Titel werden korrekt zu kaffeine übertragen.
#!/bin/sh # Dieses Script überträgt Aufnahmedaten vom TV-Browser zu Kaffeine. # Überprüfen, ob alle notwendigen Programme vorhanden sind. for PRG in kaffeine dcop bc; do type $PRG >/dev/null 2>&1 || { echo "Das Programm '$PRG' wurde nicht gefunden!" exit 3 } done # Kaffeine muss schon laufen, also starten wir es zuerst. # Da Kaffeine sich nicht zweimal starten lässt, kann es # nicht schaden, ohne Abfrage zu starten. kaffeine # Wenn zu wenig Parameter, < 8, angegeben werden, dann nimm an, # dass die Sendung gelöscht werden soll. [ $# -lt 8 ] && { echo "Sendung gelöscht oder zu wenig Parameter!" exit 0 } # Lies die Parameter in Variablen. for VAR in strJahr strMonat strTag strStunde strMinute strLaenge strKanal strTitle; do eval "$VAR=\"$1\"" shift done strDauerStunden=`echo "$strLaenge/60" | bc` strDauerMinuten=`echo "$strLaenge%60" | bc` # Einstellige Zahlen mit führender Null ausstatten for VAR in strMonat strTag strStunde strMinute strDauerStunden strDauerMinuten; do case `eval "echo \\\$$VAR"` in [0-9]) eval "$VAR=0\$$VAR" ;; esac done strDauer=$strDauerStunden":"$strDauerMinuten":00" # Teile für Befehl bauen. strName="$strJahr$strMonat$strTag-$strStunde$strMinute $strTitle" strZeitpunkt=$strJahr"-"$strMonat"-"$strTag"T"$strStunde":"$strMinute":00" # Aufruf des Kaffeine-Interfaces via dcop. dcop kaffeine KaffeineIface dvbNewTimer "$strName" "$strKanal" "$strZeitpunkt" "$strDauer" # Rückgabe an den TV-Browser. cat <<EOF Name: $strName Kanal: $strKanal Zeit: $strTag.$strMonat.$strJahr $strStunde:$strMinute Dauer: $strDauerStunden:$strDauerMinuten EOF
ToDo
- Lösch-Funktion (scheint aber über DCOP nicht zu gehen)
Es ist wichtig, die Sendernamen im TV-Browser und in Kaffeine anzugleichen. Ein Entfernen der Leerzeichen im Sendernamen ist nicht notwendig. Groß- und Kleinschreibung muss übereinstimmen.
Kategorie⧼colon-separator⧽