CapturePlugin - Kaffeine
Aus TV-Browser Wiki
Version vom 29. Dezember 2009, 22:43 Uhr von Laureus⧼word-separator⧽⧼parentheses⧽
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 launchpad.net-Quellen verfügbar. Falls eine Installation von dort, bzw. eine Änderung der Paketquellen, nicht erwünscht ist, sollte man das alternative Shell-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 id ps sed; do type $PRG >/dev/null 2>&1 || { echo "Das Programm '$PRG' wurde nicht gefunden!" exit 3 } done # Wenn zu wenig Parameter, < 8, angegeben werden, dann nimm an, # dass die Sendung gelöscht werden soll. [ $# -lt 8 ] && { if [ $# -eq 1 -a "$1" = "remove" ]; then echo "Sendung in TV-Browser gelöscht! Bitte in kaffeine separat löschen." else echo "Sendung gelöscht oder zu wenig Parameter! Bitte in kaffeine separat löschen." fi 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="$strTitle" strZeitpunkt="$strJahr-$strMonat-${strTag}T$strStunde:$strMinute:00" # Prüfe, ob kaffeine schon läuft. WHOAMI=`id -un` ps -u "$WHOAMI" -o cmd | sed -e 1d -e 's/ .*//' -e 's_^.*/__' | \ ( while read CMD; do [ "$CMD" = kaffeine ] && exit 1; done; exit 0 ) KAFFEINE_FOUND=$? # kaffeine starten, falls es nicht läuft. [ $KAFFEINE_FOUND -eq 0 ] && kaffeine # Aufruf des Kaffeine-Interfaces via dcop. dcop kaffeine KaffeineIface dvbNewTimer "$strName" "$strKanal" "$strZeitpunkt" "$strDauer" DCOP_RC=$? # Rückgabe an den TV-Browser. cat <<EOF Name: $strName Kanal: $strKanal Zeit: $strTag.$strMonat.$strJahr $strStunde:$strMinute Dauer: $strDauerStunden:$strDauerMinuten Rückgabewert (dcop): $DCOP_RC EOF exit $DCOP_RC
ToDo
- Lösch-Funktion.
Diese Funktionalität gibt es in kaffeine bis Version 0.8.8 nicht. Falls Version 1 stabil laufen sollte, ist dies noch einmal zu überprüfen. D.h. alle Sendungen sind separat im TV-Browser und kaffeine zu löschen.
Sendernamen
Es ist wichtig, die Sendernamen im TV-Browser und in Kaffeine anzugleichen. D.h. sie müssen identisch sein.
Ein Entfernen der Leerzeichen im Sendernamen ist nicht notwendig. Groß- und Kleinschreibung muss übereinstimmen.
Kategorie⧼colon-separator⧽