Moin zusammen
Ich hatte letzte Woche auch damit begonnen, Netflix in meinen (ya)VDR und XBMC/Kodi zu integrieren. Leider habe ich diesen Thread erst heute gesehen, von daher anbei ein paar Ergänzungsvorschläge für die lircrc. Ich hatte mich für xdotool anstelle von xte entschieden, aber die nötigen Änderungen erscheinen mir minimal. Das xdo_netflix Script ist ein kleiner Wrapper, um ein paar Goodies wie das automatische Senden der (gesamten) PIN zu ermöglichen.
Folgende Tasten sind noch hinzu gekommen:
KEY_MUTE - Sprung zu / Klick auf das Lautsprechersymbol
KEY_SUBTITLE - Sprung/Klick auf das Untertitelmenü
KEY_NEXT - Sprung/Klick auf "Nächste Episode"
KEY_BACK - Senden von "ALT-Left" (Browser, Zurück)
KEY_SETUP - Senden von F5 (Browser, Seite neu laden)
KEY_RECORD - Senden der PIN (aus /etc/vdr/netflix.settings)
Die Koordinaten für die Maussprünge/klicks sind leider hardcoded für Full-HD Auflösung (1920x1080) :-/
/etc/lirc/lircrc:
begin
prog = irexec
button = KEY_LEFT
repeat = 1
config = /usr/bin/xdo_netflix mousemove_relative --sync -- -15 0
end
begin
prog = irexec
button = KEY_RIGHT
repeat = 1
config = /usr/bin/xdo_netflix mousemove_relative --sync 15 0
end
begin
prog = irexec
button = KEY_UP
repeat = 1
config = /usr/bin/xdo_netflix mousemove_relative --sync -- 0 -15
end
begin
prog = irexec
button = KEY_DOWN
repeat = 1
config = /usr/bin/xdo_netflix mousemove_relative --sync 0 15
end
begin
prog = irexec
button = KEY_OK
config = /usr/bin/xdo_netflix mousemove_relative --sync 1 0 click 1
end
begin
prog = irexec
button = KEY_MUTE
config = /usr/bin/xdo_netflix mousemove --sync 300 975 click 1
end
begin
prog = irexec
button = KEY_SUBTITLE
config = /usr/bin/xdo_netflix mousemove --sync 1600 975 click 1 mousemove --sync 1580 830
end
begin
prog = irexec
button = KEY_NEXT
config = /usr/bin/xdo_netflix mousemove --sync 1460 975 click 1
end
begin
prog = irexec
button = KEY_ESC
config = /usr/bin/xdo_netflix key alt+Left
end
begin
prog = irexec
button = KEY_BACK
config = /usr/bin/xdo_netflix key alt+Left
end
begin
prog = irexec
button = KEY_CHANNELUP
repeat = 1
config = /usr/bin/xdo_netflix key Up
end
begin
prog = irexec
button = KEY_CHANNELDOWN
repeat = 1
config = /usr/bin/xdo_netflix key Down
end
begin
prog = irexec
button = KEY_1
repeat = 1
config = /usr/bin/xdo_netflix key 1
end
begin
prog = irexec
button = KEY_2
repeat = 1
config = /usr/bin/xdo_netflix key 2
end
begin
prog = irexec
button = KEY_3
repeat = 1
config = /usr/bin/xdo_netflix key 3
end
begin
prog = irexec
button = KEY_4
repeat = 1
config = /usr/bin/xdo_netflix key 4
end
begin
prog = irexec
button = KEY_5
repeat = 1
config = /usr/bin/xdo_netflix key 5
end
begin
prog = irexec
button = KEY_6
repeat = 1
config = /usr/bin/xdo_netflix key 6
end
begin
prog = irexec
button = KEY_7
config = /usr/bin/xdo_netflix key 7
end
begin
prog = irexec
button = KEY_8
config = /usr/bin/xdo_netflix key 8
end
begin
prog = irexec
button = KEY_9
config = /usr/bin/xdo_netflix key 9
end
begin
prog = irexec
button = KEY_0
config = /usr/bin/xdo_netflix key 0
end
begin
prog = irexec
button = KEY_RECORD
config = /usr/bin/xdo_netflix special PIN
end
begin
prog = irexec
button = KEY_PLAY
config = /usr/bin/xdo_netflix key space
end
begin
prog = irexec
button = KEY_PAUSE
config = /usr/bin/xdo_netflix key space
end
begin
prog = irexec
button = KEY_REWIND
config = /usr/bin/xdo_netflix key Left
end
begin
prog = irexec
button = KEY_FASTFORWARD
config = /usr/bin/xdo_netflix key Right
end
begin
prog = irexec
button = KEY_STOP
config = /usr/bin/xdo_netflix key alt+F4
end
begin
prog = irexec
button = KEY_SETUP
config = /usr/bin/xdo_netflix key F5
end
Display More
Das xdo_netflix Script sieht dann wie folgt aus:
#!/bin/sh
export DISPLAY=:1
if ! test -e /tmp/NETFLIX_RUNNING
then
exit 0
fi
case "${1}" in
special)
case "${2}" in
PIN)
. /etc/vdr/netflix.settings
/usr/bin/xdotool type "${NETFLIX_PIN}"
/usr/bin/xdotool key Return
;;
esac
;;
*)
/usr/bin/xdotool ${*}
;;
esac
Display More
Die referenzierte /etc/vdr/netflix.settings :
NETFLIX_COUNTRY=DE
NETFLIX_PIN=1234
Der Vollständigkeit halber noch mein Script zum netflix start
#!/bin/sh
URL=${2}
NETFLIX_COUNTRY=${1}
# To switch between netflix UK or US (or whatever country)
# set the country in "/etc/vdr/netflix.settings"
# Then call this script with netflix XX to use that country
if test "x${NETFLIX_COUNTRY}" == "xXX"
then
. /etc/vdr/netflix.settings
fi
case ${NETFLIX_COUNTRY} in
DE)
if test -z "${URL}"
then
URL="http://netflix.de"
fi
PROXY=""
;;
EN)
if test -z "${URL}"
then
URL="http://netflix.co.uk"
fi
PROXY="--proxy-server=socks://localhost:9050"
sudo cp /etc/tor/torrc.EN /etc/tor/torrc
sudo service tor restart
;;
US)
if test -z "${URL}"
then
URL="http://netflix.com"
fi
PROXY="--proxy-server=socks://localhost:9050"
sudo cp /etc/tor/torrc.US /etc/tor/torrc
sudo service tor restart
;;
*)
echo "Usage: ${0} (DE|EN|US)"
exit -1
;;
esac
export DISPLAY=:1
touch /tmp/NETFLIX_RUNNING
/usr/bin/google-chrome ${PROXY} \
--user-agent="Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2114.2 Safari/537.36" \
--start-maximized \
--disable-translate \
--disable-new-tab-first-run \
--no-default-browser-check \
--no-first-run \
--kiosk ${URL}
rm /tmp/NETFLIX_RUNNING
Display More
... und noch die /etc/init/netflixXX.conf's
/etc/init/netflixDE.conf:
#################################################################################
# #
# The following configuration file is generated automatically by the yaVDR #
# system. Don't change this file as every update of yaVDR will overwrite #
# the local changes. Instead put your required customizations #
# into /etc/yavdr/templates_custom/ based on the original templates #
# under /usr/share/yavdr/templates. #
# #
# http://www.yavdr.org/developer-zone/template-overview/ #
# #
# #
#################################################################################
description "Netflix DE"
script
export PATH=/usr/local/bin:/usr/bin:/bin
export HOME=/var/lib/vdr
exec su -c "/usr/bin/netflix DE" vdr
end script
pre-start script
if [ ! -z $STANDALONE ] ; then
vdr-dbus-send /Remote remote.Disable ||:
touch /tmp/.standalone || /bin/true
fi
end script
post-stop script
/bin/rm -f /tmp/.standalone
if [ ! -z $STANDALONE ] ; then
vdr-dbus-send /Remote remote.Enable ||:
/sbin/initctl emit --no-wait vdr-frontend-restart
fi
end script
Display More
/etc/init/netflixEN.conf:
#################################################################################
# #
# The following configuration file is generated automatically by the yaVDR #
# system. Don't change this file as every update of yaVDR will overwrite #
# the local changes. Instead put your required customizations #
# into /etc/yavdr/templates_custom/ based on the original templates #
# under /usr/share/yavdr/templates. #
# #
# http://www.yavdr.org/developer-zone/template-overview/ #
# #
# #
#################################################################################
description "Netflix EN"
script
export PATH=/usr/local/bin:/usr/bin:/bin
export HOME=/var/lib/vdr
exec su -c "/usr/bin/netflix EN" vdr
end script
pre-start script
if [ ! -z $STANDALONE ] ; then
vdr-dbus-send /Remote remote.Disable ||:
touch /tmp/.standalone || /bin/true
fi
end script
post-stop script
/bin/rm -f /tmp/.standalone
if [ ! -z $STANDALONE ] ; then
vdr-dbus-send /Remote remote.Enable ||:
/sbin/initctl emit --no-wait vdr-frontend-restart
fi
end script
Display More
/etc/init/netflixUS.conf:
#################################################################################
# #
# The following configuration file is generated automatically by the yaVDR #
# system. Don't change this file as every update of yaVDR will overwrite #
# the local changes. Instead put your required customizations #
# into /etc/yavdr/templates_custom/ based on the original templates #
# under /usr/share/yavdr/templates. #
# #
# http://www.yavdr.org/developer-zone/template-overview/ #
# #
# #
#################################################################################
description "Netflix US Daemon"
script
export PATH=/usr/local/bin:/usr/bin:/bin
export HOME=/var/lib/vdr
exec su -c "/usr/bin/netflix US" vdr
end script
pre-start script
if [ ! -z $STANDALONE ] ; then
vdr-dbus-send /Remote remote.Disable ||:
touch /tmp/.standalone || /bin/true
fi
end script
post-stop script
/bin/rm -f /tmp/.standalone
if [ ! -z $STANDALONE ] ; then
vdr-dbus-send /Remote remote.Enable ||:
/sbin/initctl emit --no-wait vdr-frontend-restart
fi
end script
Display More
Und zu guter Letzt noch die Ergänzung in der /etc/wmdrawer/web:
(Netflix DE) (netflixDE.png) (/usr/share/vdr/menuorg-appswitcher standalone=yes app=netflixDE)
(Netflix EN) (netflixEN.png) (/usr/share/vdr/menuorg-appswitcher standalone=yes app=netflixEN)
(NetflixUS) (netflixUS.png) (/usr/share/vdr/menuorg-appswitcher standalone=yes app=netflixUS)
und noch die Ergänzungen in /etc/tor/torrc.XX:
/etc/tor/torrc.EN:
ExitNodes {ie},{uk},{gb}
StrictNodes 1
/etc/tor/torrc.EN:
ExitNodes {us}
StrictNodes 1
Ich weiß, ist alles etwas hacky, aber vielleicht kanns ja doch jemand gebrauchen oder aber der Obelix kann ein paar Anregungen in sein "echtes" Addon übernehmen
Beste Grüße,
blafasel