Hacking Plex

plex

Sempre più persone oggi si stanno dotando di soluzioni di media center personali per archiviare le proprie foto, musiche e film. Con questo articolo non voglio elogiarti Plex (un noto, potente e versatile software per costruire un media center), ma piuttosto dirti come poterti connettere arbitrariamente ad un server Plex remoto di parenti o amici anche se il tuo dispositivo (SmartTV, Player, Console, ecc.) non supporta l’aggiunta di un server Plex per IP.

Il problema

problemIl problema specifico che ho dovuto affrontare nasce dal fatto che l’unica App del televisore LG webOS che non ha problemi con i server Plex (XPlay) non può collegarsi ad un server Plex con un IP inserito manualmente nella propria configurazione.

Purtroppo Playz, che è stata la prima applicazione per LG webOS in grado di collegarsi a server Plex arbitrari specificando l’IP nella configurazione, si blocca di tanto in tanto!

XPlay di contro non si blocca, ma, come documentato, supporta il collegamento a server Plex scoprendo l’IP dove collegarsi solo tramite account Plex (che sarà necessario creare prima sul sito ufficiale di Plex). In pratica nella configurazione di XPlay si specifica la propria credenziale Plex, quindi lui scarica l’elenco di tutti i server che abbiamo registrato sul nostro account Plex e ci si connette permettendo di riprodurre i contenuti.

Quindi per vedere i contenuti del tuo server Plex casalingo ad esempio è sufficiente collegare il tuo server Plex con il tuo account Plex ed il gioco è fatto.

Tutto semplice e comodo fin qui, ma… se il server Plex che vuoi utilizzare non è tuo?

Chi usufruisce di server Plex remoti, usati magari da più persone, ha potenzialmente un problema, in quanto alcuni client Plex (come XPlay appunto) non permettono di ottenere gli IP dei server al di fuori del proprio account Plex.

Tali server Plex remoti non possono essere associati con il tuo account Plex perché il collegamento tra un server Plex e un account Plex si può effettuare solo mediante il server stesso, e, ovviamente, il proprietario del server Plex avrà già il suo account collegato.

E indovina un pò?! …ogni server Plex può essere collegato ad un solo account Plex!

Ecco quindi il problema in estrema sintesi: se non posso aggiungere un server Plex (non gestito da me) al mio account Plex, come posso dire ad un client Plex di collegarcisi se questi ottiene gli IP dei server solo dal mio account?

La soluzione

ideaMater artium necessitas dicevano i latini, e perciò al grido di “DEVO trovare una soluzione!”, ho ideato un hack per superare il problema.

In buona sostanza si tratta di collegare il proprio account Plex con un server fantasma che redirige il traffico verso il server Plex reale, ovvero un classico PROXY HTTP.

Cosa serve oltre al server remoto e al tuo client Plex:

  • Un computer collegato alla rete locale del tuo client Plex (in questo esempio utilizzerò Windows ma il concetto è riproducibile con qualsiasi altro sistema operativo).
  • Un software in grado di realizzare un semplice proxy http
    Su Windows si può usare il comando netsh (Vedi esempio più avanti) oppure il software PassPort che ha una comoda interfaccia grafica.

Questi i passi per risolvere il problema:

  1. crea un account gratuito dal sito ufficiale di Plex,
  2. installa il server Plex sul tuo computer (senza eseguire alcun tipo di configurazione),
  3. lancia il server Plex appena installato e collegalo al tuo account Plex che hai creato al punto 1
    (il tuo account Plex ora avrà associato il tuo server Plex che risponde ad esempio all’IP locale 192.168.0.123).
  4. Ora disinstalla il tuo server Plex, non ti servirà più.
  5. Installa il software proxy http sullo stesso computer e configuralo per:
    a) ascoltare sulla porta 32400 dal tuo indirizzo 192.168.0.123 e
    b) girare tutto il traffico verso l’IP remoto del server Plex a cui ti volevi connettere, sempre sulla porta 32400 (a meno che non sia stato installato su una porta diversa da quella di default).
    Ad esempio, per PC con Windows, senza installare alcun software, è sufficiente il comando seguente a cui sostituire le parti in rosso con i propri IP:

    netsh interface portproxy add v4tov4 listenport=32400 connectaddress=<remote ip> connectport=32400 listenaddress=192.168.0.123 protocol=tcp
  6. configura il tuo client Plex con il tuo account Plex.

That’s all folks 🙂

Da adesso in poi potrai vedere tutti i contenuti del server Plex remoto direttamente dal tuo client!

Ricorda però che, ovviamente, non potrai spegnere il computer mentre stai guardando un film!

Ma cosa ho fatto alla fine?

popcornIn pratica il client Plex si collega al tuo account Plex (in cloud), ottiene ad esempio l’IP 192.168.0.123 e prova a connettercisi sulla porta 32400; al posto del server Plex il client si connette in realtà al proxy a bordo del tuo computer che gira la richiesta al server Plex remoto (reale) e inoltra le risposte indietro al tuo client Plex.

Il tuo client Plex “pensa” di collegarsi al tuo server Plex, ma, in realtà, si sta collegando altrove: visto che l’unico modo per aggiungere un server Plex ad un account Plex è dal server Plex stesso, basta installarlo, configurarlo con l’account e poi rimuoverlo: l’unica cosa che ti serve è inserire il tuo IP locale nel tuo account Plex, che è di fatto memorizzato sui sistemi in cloud di Plex.tv.

Curiosità: fino a pochi giorni fa anche il client Plex della Playstation 4 aveva questo limite; fortunatamente lo hanno rimosso inserendo un’opzione per specificare direttamente l’indirizzo IP del server Plex.

EDIT: Oggi è entrata nella mia casa una XBOX ONE, e indovina un pò? Anche qui il client Plex non da la possibilità di specificare un server specifico, ma grazie alla suddetta soluzione proxy il tutto funziona correttamente.

Ora basta chiacchiere e… BUONA VISIONE!

comments powered by HyperComments