Netflix Plugin für Carola

Die Spatzen pfeifen es vermutlich schon von den Dächern, ich habe mir einen lang gehegten Traum soweit das ging erfüllt: Netflix mit Carola steuern 😀

Netflix Plugin für Carola

Es war richtig cool als Carola die eigenen Videos managen konnte, aber jetzt kann man auch Netflix basismäßig  ansteuern.Das ganze ist zwar noch ein bisschen Beta, weil die Sprachkommandos noch ein bisschen ausgefeilt werden müssen, so daß man eine Menge von sinnvollen Sätzen sagen kann ums an Ziel zu kommen, aber es geht schon ganz braucht.

Ihr könnt Euch sicher vorstellen, daß man dazu einen Browser braucht. Ich habe wie viele von euch Firefox genommen, weil der mit dem Kioskmodus genau die richtige Funktion für das satte Netflixerlebnis hat. Natürlich geht es auch im Windowmodus, aber das ist nicht die beste Wahl, weil das Plugin mit dem Wechsel zwischen Vollbild und Fenster klar kommen muß, was nicht ganz einfach ist. Es gibt auch so schon einige Hindernisse an denen das ganze „scheitert“, da müssen wir uns nicht noch mehr Ärger ins Haus holen.

Für alle Fälle gibt es im Repo auch eine Config für den Fenstermodus. Der hängt aber stark von den eingeblendeten Elementen von Firefox ab und erfordert daher sehr viel Arbeit von Euch. Ich empfehle den Kiosk zu benutzen.

Wir brauchen

Ein paar Tools brauchen wir und wenn Ihr kein X habt, sondern Wayland, braucht Ihr eh eine Alternative zum xdotool. Also: xdotool, wmctrl und sed sind Pflicht und ein eigenes Netflix Profil im Firefox macht alles sehr viel einfacher 😉 Fangen wir damit an

Terminal aufmachen
firefox –profilemanager
Neues Profil erzeugen: Netflix
mit dem Profil starten
das NetFlix 1080p Plugin installieren
das Widevine Plugin installieren
Netflix als Startseite setzen
und raus

Jetzt habt Ihr ein Problem: Firefox hat Netflix jetzt als Default Profile gespeichert. Ergo müßt Ihr jetzt wieder den firefox –profilemanager starten und das beheben! Ansonsten ist jeder Firefoxstart ein Alptraum 😉

Nehmen wir an Ihr habt das geschafft, dann braucht Ihr die Konfiguration:

app:“netflix“,“xdotool mousemove 960 540x:x/usr/bin/firefox -P netflix –kiosk –new-instance“

# you need wmctrl, grep, sed and xdotool installed to make this work.

command:“netflix|home“,“NETFLIXHOME“,““
command:“netflix|vorspulen“,“NETFLIXFORWARD“,““
command:“netflix|zurückspulen“,“NETFLIXBACKWARDS“,““
command:“netflix|meine|liste“,“NETFLIXMYLIST“,““
command:“netflix|suche“,“NETFLIXSEARCH“,““
command:“netflix|spiele“,“NETFLIXSEARCH“,““
command:“netflix|ich|will|sehen“,“NETFLIXSEARCH“,““
command:“netflix|zurück“,“NETFLIXRETURN“,““
command:“netflix|pause“,“NETFLIXPAUSE“,““
command:“netflix|abspielen“,“NETFLIXPAUSE“,““
command:“netflix|überspringen“,“NETFLIXSKIPINTRO“,““
command:“netflix|vollbild|an“,“NETFLIXFULLSCREEN“,““
command:“netflix|vollbild|aus“,“NETFLIXFULLSCREEN“,““

# WARNING: THESE VALUES NEED TO BE ADJUSTED TO YOUR PRIVATE BROWSER IN USE!!!
# FULLSCREEN KIOSK MODE

netflix:“offset“,“0″
netflix:“pos_fullscreen_on“,“1873,1020″
netflix:“pos_fullscreen_off“,“1873,1020″
netflix:“pos_mylist“,“560,36″
netflix:“pos_search“,“1728,36″
netflix:“pos_back“,“50,50″
netflix:“pos_play“,“30,1023″
netflix:“pos_backwards“,“116,1023″
netflix:“pos_forward“,“210,1023″
netflix:“pos_start“,“232,36″
netflix:“pos_firstentry“,“170,270″
netflix:“pos_miniplay“,“170,270″
netflix:“pos_emptyspace“,“1222,36″
netflix:“pos_skipintro“,“1764,915″

# PVA Kommandos zur Mauskontrolle

netflix:“windowactivate“,“/usr/share/pva/plugins/files/activatewindow.sh“
netflix:“mousemove“,“/usr/bin/xdotoolx:xmousemovex:xXXXx:xYYY“
netflix:“clickLMB“,“/usr/bin/xdotoolx:xclickx:x1″
netflix:“linefeed“,“/usr/bin/xdotoolx:xkeyx:xLinefeed“
netflix:“escape“,“/usr/bin/xdotoolx:xkeyx:xEscape“
netflix:“type“,“/usr/bin/xdotoolx:xtypex:x<TERM1>“
netflix:“pageup“,“/usr/bin/xdotoolx:xkeyx:xPage_Up“
netflix:“pagedown“,“/usr/bin/xdotoolx:xkeyx:xPage_Down“

Die grün markierten Anweisungen braucht Ihr nicht anpassen, aber die Positionsdaten könnten, je nach Schriftart und Vergrößerungsfaktor im Browser anzupassen sein. Meine gehen von 100% Zoom aus. Wenn Ihr einen 1920×1080 FullHD Monitor habt, dürfte das so passen. Ist Euer Display größer, multipliziert die Werte einfach mit dem richtigen Faktor.

Für alle, die das mit Mathe im Kopf nicht so haben, hier eine Linuxstyle Lösung:

watch -n 0.5 „xdotool getmouselocation“

Einfach in einem eigenen Fenster im Vordergrund laufen lassen, Problem gelöst 😉

Jetzt schiebt Ihr noch das Plugin, das Fensteraktivierungs-Script in den Pluginordner, aktualisiert im Server Ordner die PVA Hauptklasse und startet PVA neu : Fertig. Kompilieren aller Komponenten nicht vergessen. Das sieht dann so aus:
(dieser Abschnitt wurde aktualisiert, da sich ein Fehler eingeschlichen hatte)

$ ls -ls /usr/share/pva/plugins/files/
insgesamt 68
4 -rwxr-xr-x. 1 root root 112 9. Mär 13:00 activatewindow.sh
8 -rw-r–r–. 1 root root 4828 9. Mär 13:14 DiskFree.class
8 -rw-r–r–. 1 root root 4484 9. Mär 13:14 LoadTask.class
8 -rw-r–r–. 1 root root 7607 9. Mär 13:14 Netflix.class
4 -rw-r–r–. 1 root root 1891 9. Mär 13:14 ‚Netflix$Position.class‘
4 -rw-r–r–. 1 root root 3474 9. Mär 13:14 SpeechGuard.class

Achtet auf die Zugriffsrechte des Scripts und alles wird gut.

Carola netflix home
Carola netflix vorspulen
Carola netflix zurückspulen
Carola netflix meine liste
Carola netflix suche
Carola netflix spiele
Carola netflix zurück
Carola netflix pause
Carola netflix abspielen
Carola netflix überspringen
Carola netflix vollbild an
Carola netflix vollbild aus

Die blauen sind Synonyme weil die Netflixbuttons nur einmal vorhanden sind. Ihr könnt also mit „Pause“ auch wieder das Video starten. Vor- und Zurückspulen ist nur drin, weil die Buttons da waren, nicht weil 10 Sekunden besonders hilfreich wären 😉 „Überspringen“ bezieht sich auf die Intro bei Serien. Wenn Ihr das Timing vergeigt, hält das Video an, weil die Netflix UI das so vorsieht 🙂

Einige Befehle sind nur dann wirksam, wenn ein Video läuft. Damit Carola das weiß, muß sie es selbst gestartet haben. Damit sie weiß, daß das Playback zu ende ist, muß sie es beenden. Also gewöhnt Euch schonmal an diese Ansagen:

Carola Netflix zurück
Carola Netflix suche <hier Film einsetzen>

Falls das Steuermodul mal nicht mehr mitkommt mit Euren manuellen Klicks, einfach Carola neu starten 😉

Update:

Ich hatte gestern abend leider vergessen Euch mitzuteilen, daß PVA.java auch aktualisiert werden muß. Das wurde oben geändert.

PVA: Carola halt die Klappe!

Ok, Kritik angekommen: Sie redet zuviel, aber muß man deswegen gleich ausfallend werden?

PVA: Carola halt die Klappe!

Wer hat das seinem Sprachassistenten nicht auch schon mal an den Kopf werfen wollen, wenn der zum xten mal Unsinn gehört und einfach dazwischen gequatscht hat? Mit dem neuen Plugin SpeechGuard könnt Ihr das jetzt:

Carola HALT DIE KLAPPE

schaltet die Sprachausgabe für 10 Minuten aus,

Carola DU DARFST WIEDER

schaltet die Sprachausgabe sofort wieder ein.

Wer etwas weniger wütend sprechen möchte, kann das ganz einfach in seiner privaten UserConfig überschreiben bzw. eine alternative einbauen: Einfach in eine Configdatei z.B. ~/.config/pva/conf.d/99-sprachausgabe.conf schreiben:

command:“sprache|aus“,“SHUTUP“,““
command:“sprache|an“,“TALKTOME“,““

Fertig. So einfach ist das.

PVA: unerwartete KDE Connect Interaktion

Hi, völlig überraschend stellt sich heraus, daß Funktion wie geplant funktionieren, aber unerwartete Dinge offenbaren. Die Medienwiedergabe ist so ein Fall.

PVA: unerwartete KDE Connect Interaktion

Ich höre gerade übers Handy Musik und wollte Carola ein paar Reaktionstests unterziehen, als sie nicht reagierte 😐 Da wurde ich natürlich nervös, weil das untypisch war. Ich habe ja erst gedacht, daß die Soundausgabe auf den anderen Kopfhörern liegt, aber das war nicht der Fall. Sprach man sie direkt mit Namen an, reagiert die Kleine wie sie sollte.

Ein neues Mysterium? 🙂

Leider nicht, denn zur Steuerung meines Handies hatte ich KDE Connect auf dem PC gestartet. Ich zeige Euch mal die Topologie:

KDE Connect hat sich auf dem PinePhone die von Lollypop zur Verfügung gestellte MPRIS2 Schnittstelle geschnappt und die über das Netz genutzt. Soweit, so beabsichtigt 🙂 Tatsächlich ist KDE Connect auf dem PC noch einen Schritt weitergegangen und hat auf dem PC die MPRIS2 Schnittstelle von Lollypop exponiert und die hat nun wiederum Carola gesehen und benutzt.

Das bedeutet, ich kann jetzt auf dem PC mit Carola die Musik per Sprache steuern, obwohl beide nichts von einander wissen können, weil KDE Connect die Schnittstellen bridged 😀 Wie geil ist das denn bitte ?!!?!?!?!! 😀

Warum schwieg sie jetzt?

Weil sie, wenn eine Medienwiedergabe läuft, nicht auf den gesprochenen Text reagieren soll. Das ständige dazwischen quatschen würde einfach nur nerven.