Amazon Prime Video in TV

Una delle cose che non sopporto di Amazon Prime Video è che non supporta molti modi per vedere i film in TV: o prendi una Fire TV Stick, oppure colleghi il computer direttamente al televisore. Chromecast e Smart TV non servono a niente.

Nel mio caso ho già una “non troppo smart” TV, nel senso che è di una marca sconosciuta e le app che si possono installare si contano sulla punta delle dita, ed ho una vecchia Chromecast in giro per casa. Di comprare anche una nuova Fire Stick non ne ho assolutamente voglia. Ma il non potere gustarmi i film di Prime dal divano ne ha limitato di molto il mio utilizzo.

Ora però ho trovato una soluzione, ma dato che non è molto semplice da attivare mi pare giusto scrivere due righe per condividerla.

Faccio una piccola premessa, di recente ho comprato una NAS con uscita HDMI che permette di far girare un piccolo sistema multimediale ed offre un comodo telecomando, questo è stato quindi il mio punto di partenza. Ovviamente non c’era nessun supporto per Prime Video nel media center integrato, la NAS offre però la possibilità di installare una Ubuntu da utilizzare col TV, dandomi quindi più flessibilità.

Tutto quello che seguirà è quindi stato testato su Ubuntu 16.04 (una versione un po’ vecchia, ma è l’ultima supportata dalla NAS ed è una LTS, quindi va bene), ma dovrebbe funzionare per ogni distribuzione basata su Debian (e con qualche accorgimento ogni Linux). L’unico dubbio che ho è per i sistemi basati su Raspberry: non sono sicuro che abbiano la potenza e i codec necessari per decrittare i DRM di Amazon, ma forse mi sbaglio.

Ovviamente, avendo un computer collegato alla TV la cosa più semplice è usare tastiera a mouse, ma volevo qualcosa di più comodo da tenere sul divano. La prima piacevole sorpresa che ho avuto è che il telecomando della NAS funzionava senza problemi anche in Linux. Ho quindi installato Kodi (uno dei più diffusi sistemi multimediali per Linux) ed iniziato a lavorare su quello.

Kodi ha funzionato praticamente fin da subito, telecomando incluso. Anche se non è sempre molto intuitivo, vista la sua diffusione è facile trovare suggerimenti in rete (soprattutto se si capisce l’inglese). Però non offre un supporto diretto per Amazon. Ho quindi iniziato a cercare tra i suoi plugin.

Il plugin più promettente è stato Remote Control Browser, la cui descrizione recita: il modo più flessibile di accedere ai contenuti di Netflix, YouTube e Amazon Instant Video sarebbe un browser web, se questo offrisse una buon supporto nativo per un monitor di 3 metri. Questa add-on lancia un browser e connette le frecce del telecomando al cursore del mouse. Questo è il modo più semplice per utilizzare contenuto online senza il bisogno di una tastiera wireless.

Ottimo, peccato che una volta installato non funzioni. Dato che dopo varie ricerche non ho trovato nulla di meglio, e che lo sviluppo pare fermo (non riceve aggiornamenti da un anno circa), ho deciso di provare a debuggare il codice.

Primo consiglio: i messaggi di errore che appaiono a video non sono per nulla utili, la prima cosa da fare è attivare i log modificando il file ~/.kodi/userdata/advancedsettings.xml

<advancedsettings>
 <loglevel>3</loglevel>
</advancedsettings>

I log saranno poi salvati in  ~/.kodi/temp/kodi.log

I problemi principali che ho trovato con l’add-on sono stati:

  1. il modulo usato per interagire col telecomando cerca gli eventi nel posto sbagliato;
  2. la configurazione del telecomando era un po’ troppo specifica e quindi non funzionava col mio;
  3. l’add-on era pensata per Amazon Instant Video (la versione americana) al posto che Prime Video, quindi andava sul sito sbagliato.

Ma andiamo in ordine ed installiamo le dipendenze che servono per farlo funzionare:

$ sudo apt-get install python-pylirc xdotool google-chrome-stable

Gli eventi del telecomando

Per chi vuole un po’ più di dettagli, il sistema usato per gestire gli eventi del telecomando è LIRC, un programma un po’ vecchio ma che offre molta flessibilità. Il problema è che il wrapper python usato dall’estensione cerca il socket che trasmette gli eventi in /var/run/lirc/lircd mentre Ubuntu lo mette in /dev/lircd. Basta creare un link simbolico, ma questo va fatto ad ogni riavvio. Il modo più semplice è aggiungere al file /etc/rc.local la riga

ln -s /dev/lircd /var/run/lirc/lircd

Attenzione ad aggiungerla prima del comando exit.

Aggiunto il link, il browser ha iniziato ad aprirsi, ma il telecomando non dava segni di vita.

La configurazione del telecomando

Prima cosa bisogna conoscere quali tasti sono disponibili sul telecomando, cosa molto importante nel mio caso perché il telecomando della NAS ha solo 13 tasti, quindi bisogna farne un uso parsimonioso.

Il comando irw permette di vedere i codici generati da ogni tasto, basta lanciarlo e premere un tasto sul telecomando per vedere qualcosa tipo:

$ irw 
00000000800100ae 00 KEY_EXIT devinput

In questo caso sappiamo che il codice del tasto premuto è KEY_EXIT.

La configurazione del telecomando si trova in

~/.kodi/addons/plugin.program.remote.control.browser/resources/data/lircd/browser.lirc

Il primo problema che ho notato è che nel file originale era configurato il telecomando remote = mceusb che non era il mio. Dato che il mio ricevitore non funziona con altri telecomandi, ho semplicemente cancellato tutte queste righe, per poi sostanzialmente riscrivere il seguente file di configurazione.

## VOLUME
begin
    prog = browser
    button = KEY_VOLUMEUP
    config = VOLUME_UP
    repeat = 1
    delay = 0
end
begin
    prog = browser
    button = KEY_VOLUMEDOWN
    config = VOLUME_DOWN
    repeat = 1
    delay = 0
end
begin
    prog = browser
    button = KEY_MUTE
    config = MUTE
    repeat = 0
    delay = 0
end

## Chiudi il browser
begin
    prog = browser
    button = KEY_SLEEP
    config = EXIT
    repeat = 0
    delay = 0
end

## Dato che navigare solo sol cursore non è semplice, 
## uso le frecce in 2 modi diversi: mouse e tastiera. 
## Nel modo mouse le frecce spostano il cursore e l'ok è un click. 
## Nel modo tastiera le frecce sono i tasti freccia e l'ok uno 
## spazio (comodo per andare avanti indietro e in pausa nei video).

begin
    ## Attiva il modo mouse di default
    flags = startup_mode
    mode = mousemode
end

begin mousemode
  begin
      prog = browser
      button = KEY_OK
      config = CLICK
      repeat = 0
      delay = 0
      flags = quit
  end
  begin
      prog = browser
      button = KEY_UP
      config = MOUSE 0 -1
      repeat = 1
      delay = 0
      flags = quit
  end
  begin
      prog = browser
      button = KEY_DOWN
      config = MOUSE 0 1
      repeat = 1
      delay = 0
      flags = quit
  end
  begin
      prog = browser
      button = KEY_LEFT
      config = MOUSE -1 0
      repeat = 1
      delay = 0
      flags = quit
  end
  begin
      prog = browser
      button = KEY_RIGHT
      config = MOUSE 1 0
      repeat = 1
      delay = 0
      flags = quit
  end
  begin
      # per uscire dal modo mouse e andare nel modo tastiera
      button = KEY_EPG 
      repeat = 0
      delay = 0
      flags = mode quit
  end
end mousemode

# questo è il modo tastiera
begin
    prog = browser
    button = KEY_OK
    config = KEY space
    repeat = 0
    delay = 0
end
begin
    prog = browser
    button = KEY_UP
    config = KEY Up
    repeat = 1
    delay = 0
end
begin
    prog = browser
    button = KEY_DOWN
    config = KEY Down
    repeat = 1
    delay = 0
end
begin
    prog = browser
    button = KEY_LEFT
    config = KEY Left
    repeat = 1
    delay = 0
end
begin
    prog = browser
    button = KEY_RIGHT
    config = KEY Right
    repeat = 1
    delay = 0
end
begin
    # per ritornare nel modo mouse
    button = KEY_EPG 
    mode = mousemode
    repeat = 0
    delay = 0
end
## fine del modo tastiera

Begin
    prog = browser
    button = KEY_EXIT 
    # alt left in chrome è per tornare alla pagina precedente
    config = KEY alt+Left
    repeat = 0
    delay = 0
end

## ho ancora 2 tasti che non so come usare
# KEY_RED home
# KEY_INFO info

La doppia funzione delle frecce è molto comoda, ma avendo un telecomando con un po’ più di tasti direi che si può farne a meno. Alla fine i tasti destra sinistra e spazio servono praticamente solo per navigare nel video, quindi potrebbero essere collegati a forward, rewind e play.

Ho lasciato un po’ di commenti nel file, per i dettagli consiglio la documentazione di lircrc e man xdotool per vedere come specificare le combinazioni di tasti.

Ultima nota in questa sezione, la versione di xdotool presente nella mia Ubuntu ha un bug noto che impedisce al click di essere rilasciato correttamente, iniziando a selezionare testo ovunque. Per sistemarlo basta aprire il file ~/.kodi/addons/plugin.program.remote.control.browser/browse.py e decommentare l’ultima riga di dove c’è scritto NOTE: XDOTOOL HACK.

Aprire Prime Video

Questo è il passaggio più facile, si potrebbe fare anche dall’interfaccia grafica, ma visto che c’è molto da scrivere toccare il file di configurazione è più veloce. Al posto di avere un solo link per aprire Amazon ne ho aggiunti 4, dato che la navigazione col telecomando comunque non è comodissima, ho preferito aggiungere i link per aprire direttamente la pagina dei film, delle serie TV e le rispettive watchlist.

Il file in questione è ~/.kodi/userdata/addon_data/plugin.program.remote.control.browser/bookmarks.xml

<bookmarks version="1.0">
  <bookmark id="fad15f96-4f36-425e-a1b3-9b3c6bca1a80"
            lircrc="special://home/addons/plugin.program.remote.control.browser/resources/data/lircd/browser.lirc"
            thumb="8d276260-be8f-11e8-bc79-020000259120"
            title="Amazon Prime Video, Movies Watchlist"
            url="//www.primevideo.com/watchlist/movie/" />
  <bookmark id="fad15f96-4f36-425e-a1b3-9b3c6bca1a81"
            lircrc="special://home/addons/plugin.program.remote.control.browser/resources/data/lircd/browser.lirc"
            thumb="8d276260-be8f-11e8-bc79-020000259120"
            title="Amazon Prime Video, TV Series Watchlist"
            url="//www.primevideo.com/watchlist/tv/" />
  
  <bookmark id="fad15f96-4f36-425e-a1b3-9b3c6bca1a82"
            lircrc="special://home/addons/plugin.program.remote.control.browser/resources/data/lircd/browser.lirc"
            thumb="8d276260-be8f-11e8-bc79-020000259120"
            title="Amazon Prime Video, Movies"
            url="//www.primevideo.com/storefront/movie/" />
  <bookmark id="fad15f96-4f36-425e-a1b3-9b3c6bca1a83"
            lircrc="special://home/addons/plugin.program.remote.control.browser/resources/data/lircd/browser.lirc"
            thumb="8d276260-be8f-11e8-bc79-020000259120"
            title="Amazon Prime Video, TV Series"
            url="//www.primevideo.com/storefront/tv/" />
</bookmarks>

Ultime note

All’inizio ho avuto il problema che il browser si apriva ma non a schermo intero, questo era dovuto al fatto che eseguivo Kodi in modalità standalone, e senza un window manager il browser non sapeva le dimensioni dello schermo. Per risolvere basata installare un window manager e configurarlo per eseguire Kodi in automatico. Nel mio caso ho scelto Fluxbox perché è piccolo e leggero, ed ho modificato il file ~/.fluxbox/startup aggiungendo kodi subito prima di exec fluxbox.

Come alternativa, c’è un’app android che può essere usata per emulare il mouse. Si chiama XMouse e funziona abbastanza bene ma non è proprio semplice da configurare ed ha il problema che si disconnette ogni volta che si spegne lo schermo.

2 pensieri su “Amazon Prime Video in TV

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.