Qnap Installer PlexPy sur son NAS QNAP.

Lacao

Apprenti
22 Mars 2015
53
0
6
Salut tout le monde !

Si vous aussi vous êtes un utilisateur comme moi de Plex, et que vous partagez votre bibliothèque avec votre famille, il peut être intéressant de savoir ce que les autres membres regardent, avec quel lecteur, et quand. C'est que je suis méga curieux aussi !

Pour cela, il existe un utilitaire codé en Python qui s'intitule PlexPy. Le soucis, c'est qu'autant ça n'a pas l'air trop compliqué à installer sur son serveur Windows/Mac/Linux, autant rien n'a été fait par l'auteur pour que cela fonctionne sous QTS (ou DSM, etc...). Il va donc être nécessaire de mettre les mains dans le cambouis, et entre autres d'utiliser des lignes de commande, en SSH. Vous verrez, je n'utilise pas un langage technique, tout simplement parce que je n'y connais pas grand chose. C'est probablement pas mal de bidouille mais au final, ça fonctionne.

-----------------------------------------------------------
1ère étape : activation du SSH dans le QTS
-----------------------------------------------------------
C'est tout bête : connectez-vous à votre interface et aller dans Panneau de contrôle > Service réseau > Telnet / SSH afin d'activer le protocole SSH qui nous permettra de communiquer avec le NAS en lignes de commande. Pensez à valider en cliquant sur Appliquer avant de fermer ;) .

Capture d’écran 2016-02-04 à 16.14.50.png

-----------------------------------------------------------
2ème étape : avoir un client SSH
-----------------------------------------------------------
Si vous utilisez Mac (quelle belle idée !) ou Linux, le Terminal suffira largement ! Si vous utilisez Windows, j'avoue que je ne saurais trop quoi vous conseiller, mais il semble que le logiciel PuTTY se démarque. Impossible de vous expliquer comment il fonctionne (la flemme de lancer Windows :D !).

-----------------------------------------------------------
3ème étape : se connecter en SSH à son NAS
-----------------------------------------------------------
Il est temps de jouer des lignes de commande et de se faire passer pour un hacker de la mort capable de détourner des milliards de dollars à la mafia japonaise comme dans les films. Oui, c'est la première fois que j'utilise autant le Terminal !
Pour vous connecter en SSH à votre NAS, c'est clairement pas compliqué : vous avez juste besoin de votre nom d'utilisateur (admin) et de votre mot de passe. Vous devez alors écrire :
Code:
ssh admin@ip
avec ip = l'adresse IP locale de votre NAS (chez moi, c'est 192.168.1.16). Tapez Entrée et en retour vous devrez inscrire votre mot de passe. Tapez-le et validez. Ne soyez pas surpris : aucun caractère ne s'affichera lorsque vous inscrirez votre mot de passe. C'est tout à fait normal.

Capture d’écran 2016-02-04 à 16.27.09.png

Vous êtes connecté à votre NAS ! Bravo !

-----------------------------------------------------------
4ème étape : installation d'Entware
-----------------------------------------------------------
Si maintenant vous essayez d'installer PlexPy en utilisant les lignes de commandes indiquée par son auteur ici, vous n'allez pas aller bien loin : votre NAS ne comprend rien. Sans vouloir rentrer dans le pourquoi du comment, sachez qu'on va donc lui donner le dico pour comprendre tout ça. Et ce dico, c'est Entware. Pour cela, il faut télécharger le QPKG, disponible ici. Téléchargez "The installer for x86" si vous avez un processeur Intel ou AMD (processeur type x86) dans votre QNAP. Sinon, c'est probablement un processeur type ARM, et donc il va falloir utiliser "The installer for arm".
Une fois télécharger, installez en ouvrant l'App Center puis en cliquant sur le bouton "Installer Manuellement" en haut à droite.
Ça y est, votre NAS a le bon dico !

-----------------------------------------------------------
5ème étape : installation de GIT
-----------------------------------------------------------
Bon, maintenant, on va pouvoir installer le depository Git. Grossièrement, ça va permettre ensuite de télécharger PlexPy sur votre NAS. Tapez ceci et validez :
Code:
opkg install git

Il va aussi falloir installer le package Python : PlexPy est un programme écrit en Python, un langage de programmation. Donc l'idée c'est de donner au NAS le dictionnaire Python afin qu'il y comprenne quelque chose... Tapez ceci et validez :
Code:
opkg install python

Cool ! Maintenant votre NAS comprend le Python !

-----------------------------------------------------------
6ème étape : téléchargement de PlexPy
-----------------------------------------------------------
Alleluia ! On va désormais pouvoir télécharger PlexPy !
Je vous propose que le programme soit téléchargé au même endroit que les applications habituelles, c'est à dire dans /share/CACHEDEV1_DATA/.qpkg/
Pour cela, je vais à peu de choses près suivre les indications données par l'auteur de PlexPy.
On va donc aller d'abord se positionner dans de dossier en tapant ceci :
Code:
cd /share/CACHEDEV1_DATA/.qpkg/

Et on va enfin y télécharger PlexPy ! Tapez ceci et validez :
Code:
git clone git://github.com/drzoidberg33/plexpy.git
Remarquez que le lien fourni par l'auteur (https://github.com/drzoidberg33/plexpy.git) n'est pas reconnu : il semble que le NAS se comprenne pas le https. C'est pourquoi l'adresse commence par git://.

-----------------------------------------------------------
7ème étape : désactiver la vérification du certificat SSL
-----------------------------------------------------------

Si vous lancez tout de suite l'installation de PlexPy (cf. infra), sans modifier le fichier de configuration, vous allez vous retrouvez avec ceci :
Code:
[/share/CACHEDEV1_DATA/.qpkg/plexpy] # python PlexPy.py
04-Feb-2016 17:03:34 - INFO :: MainThread : Checking to see if the database has all tables....
04-Feb-2016 17:03:34 - DEBUG :: MainThread : Trying to execute: "git rev-parse HEAD" with shell in /share/CACHEDEV1_DATA/.qpkg/plexpy
04-Feb-2016 17:03:34 - DEBUG :: MainThread : Git output: 49fb4540a26e56af4e505644f6e549622da9d80d
04-Feb-2016 17:03:34 - DEBUG :: MainThread : Trying to execute: "git rev-parse --abbrev-ref HEAD" with shell in /share/CACHEDEV1_DATA/.qpkg/plexpy
04-Feb-2016 17:03:34 - DEBUG :: MainThread : Git output: master
04-Feb-2016 17:03:34 - INFO :: MainThread : Retrieving latest version information from GitHub
04-Feb-2016 17:03:34 - DEBUG :: MainThread : Requesting URL via GET method: https://api.github.com/repos/drzoidberg33/plexpy/commits/master
04-Feb-2016 17:03:35 - DEBUG :: MainThread : Latest version is 49fb4540a26e56af4e505644f6e549622da9d80d
04-Feb-2016 17:03:35 - INFO :: MainThread : PlexPy is up to date
04-Feb-2016 17:03:35 - INFO :: MainThread : PlexPy PlexTV :: Requesting URLs for server...
04-Feb-2016 17:03:35 - INFO :: MainThread : Writing configuration to file
04-Feb-2016 17:03:35 - WARNING :: MainThread : Failed to access uri endpoint /api/resources with error [SSL: CERTIFICATE_VERIFY_FAILED] unknown error (_ssl.c:590)
04-Feb-2016 17:03:35 - WARNING :: MainThread : PlexPy PlexTV :: Unable to parse XML for get_server_urls: must be string or read-only buffer, not None
04-Feb-2016 17:03:36 - INFO :: MainThread : Writing configuration to file
04-Feb-2016 17:03:36 - INFO :: MainThread : PlexPy Pmsconnect :: Requesting name from server...
04-Feb-2016 17:03:36 - INFO :: MainThread : PlexPy PlexTV :: Requesting users list refresh...
04-Feb-2016 17:03:36 - WARNING :: MainThread : Failed to access uri endpoint /api/users with error [SSL: CERTIFICATE_VERIFY_FAILED] unknown error (_ssl.c:590)
04-Feb-2016 17:03:36 - WARNING :: MainThread : Failed to access uri endpoint /users/account with error [SSL: CERTIFICATE_VERIFY_FAILED] unknown error (_ssl.c:590)
04-Feb-2016 17:03:36 - WARNING :: MainThread : PlexPy PlexTV :: Unable to parse XML for get_full_users_list own account: must be string or read-only buffer, not None
04-Feb-2016 17:03:36 - WARNING :: MainThread : PlexPy PlexTV :: Unable to refresh users list.
04-Feb-2016 17:03:36 - INFO :: MainThread : PlexPy Pmsconnect :: Requesting libraries list refresh...
04-Feb-2016 17:03:37 - INFO :: MainThread : PlexPy Pmsconnect :: Libraries list refreshed.
04-Feb-2016 17:03:37 - INFO :: MainThread : Starting PlexPy web server on http://0.0.0.0:8181/
04-Feb-2016 17:03:37 - INFO :: MainThread : Scheduled background task: Check GitHub for updates
04-Feb-2016 17:03:37 - INFO :: MainThread : Scheduled background task: Refresh Plex Server URLs
04-Feb-2016 17:03:37 - INFO :: MainThread : Scheduled background task: Refresh Plex Server Name
04-Feb-2016 17:03:37 - INFO :: MainThread : Scheduled background task: Check for active sessions
04-Feb-2016 17:03:37 - INFO :: MainThread : Scheduled background task: Refresh users list
04-Feb-2016 17:03:37 - INFO :: MainThread : Scheduled background task: Refresh libraries list

Du coup, l'idée, proposée par l'auteur lui-même, ça va être de modifier ce fichier. Pour cela, il va falloir aller le chercher. Je vous propose d'utiliser File Station, ce sera plus facile.

Dans FileStation, rajoutez un dossier partagé en cliquant sur le "+" à proximité de votre volume de stockage. Puis validez.
Capture d’écran 2016-02-04 à 16.59.05.png
Capture d’écran 2016-02-04 à 16.59.45.png

Vous pouvez désormais accéder au dossier dans la colonne de gauche. Allez-y et téléchargez le fichier config.ini, puis ouvrez le dans un éditeur de code (le bloc note peut suffire sous Windows, TextEdit sur Mac - j'utilise Brackets).
Allez à la recherche de "verify_ssl_cert = 1" (ligne 115 aujourd'hui) et modifiez par "verify_ssl_cert = 0". Enregistrez et rechargez ça dans FileStation à la place du fichier initial.
Capture d’écran 2016-02-04 à 17.11.50.png.

-----------------------------------------------------------
8ème étape : installation de PlexPy
-----------------------------------------------------------
Il va falloir pour cela se positionner dans le dossier du logiciel PlexPy. Dans votre client SSH, tapez ceci et validez :
Code:
cd plexpy

Et attention, à 3 tapez ceci : 1... 2... 3 !
Code:
python PlexPy.py

ÇA Y EST !

-----------------------------------------------------------
9ème étape : connexion à l'interface web de PlexPy
-----------------------------------------------------------
Il vous suffit désormais de vous connecter à l'adresse suivant : http://xxx.xxx.x.xx:8181 où xxx.xxx.x.xx correspond à l'IP locale de votre NAS. Vous pouvez lancer la configuration de PlexPy et quelques secondes après vous pouvez vous lancer. Bravo !
 
Un .qpkg c'est trop facile :p ! Et franchement ça n'est pas si compliqué, et j'ai bien aimé mettre la main à la pâte comme ça.
Pour QPython2, je ne savais pas que ça existait :oops:
 
sinon tu avait plus simple.. juste besoin d'installer Qgit 2.6.4, python étant de base dans le NAS, et tu ne semble pas avoir besoin de modules complémentaire
Code:
login as: admin
admin@192.168.1.36's password:
[~] # cd /share/Public

[/share/Public] # git clone https://github.com/drzoidberg33/plexpy.git
Cloning into 'plexpy'...
remote: Counting objects: 8742, done.
remote: Compressing objects: 100% (68/68), done.
remote: Total 8742 (delta 33), reused 0 (delta 0), pack-reused 8666
Receiving objects: 100% (8742/8742), 42.81 MiB | 1.03 MiB/s, done.
Resolving deltas: 100% (4457/4457), done.
Checking connectivity... done.

[/share/Public] # cd plexpy/

[/share/Public/plexpy] # python PlexPy.py
05-Feb-2016 12:38:38 - INFO :: MainThread : Checking to see if the database has all tables....
05-Feb-2016 12:38:39 - DEBUG :: MainThread : User "Local" does not exist. Adding   user.
05-Feb-2016 12:38:39 - DEBUG :: MainThread : Generating UUID...
05-Feb-2016 12:38:39 - INFO :: MainThread : Writing configuration to file
05-Feb-2016 12:38:39 - DEBUG :: MainThread : Trying to execute: "git rev-parse HEAD" with shell in /share/CACHEDEV2_DATA/Public/plexpy
05-Feb-2016 12:38:39 - DEBUG :: MainThread : Git output: 49fb4540a26e56af4e505644f6e549622da9d80d
05-Feb-2016 12:38:39 - DEBUG :: MainThread : Trying to execute: "git rev-parse --abbrev-ref HEAD" with shell in /share/CACHEDEV2_DATA/Public/plexpy
05-Feb-2016 12:38:39 - DEBUG :: MainThread : Git output: master
05-Feb-2016 12:38:39 - INFO :: MainThread : Retrieving latest version information from GitHub
05-Feb-2016 12:38:39 - DEBUG :: MainThread : Requesting URL via GET method: https://api.github.com/repos/drzoidberg33/plexpy/commits/master
05-Feb-2016 12:38:39 - ERROR :: MainThread : Unhandled exceptionTraceback (most recent call last):
  File "/share/CACHEDEV2_DATA/Public/plexpy/plexpy/__init__.py", line 162, in initialize
    LATEST_VERSION = versioncheck.checkGithub()
  File "/share/CACHEDEV2_DATA/Public/plexpy/plexpy/versioncheck.py", line 127, in checkGithub
    version = request.request_json(url, timeout=20, validator=lambda x: type(x)== dict)
  File "/share/CACHEDEV2_DATA/Public/plexpy/plexpy/request.py", line 157, in request_json
    response = request_response(url, **kwargs)
  File "/share/CACHEDEV2_DATA/Public/plexpy/plexpy/request.py", line 63, in request_response
    response = request_method(url, **kwargs)
  File "lib/requests/api.py", line 65, in get
    return request('get', url, **kwargs)
  File "lib/requests/api.py", line 49, in request
    response = session.request(method=method, url=url, **kwargs)
  File "lib/requests/sessions.py", line 461, in request
    resp = self.send(prep, **send_kwargs)
  File "lib/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "lib/requests/adapters.py", line 370, in send
    timeout=timeout
  File "lib/requests/packages/urllib3/connectionpool.py", line 518, in urlopen
    body=body, headers=headers)
  File "lib/requests/packages/urllib3/connectionpool.py", line 322, in _make_req uest
    self._validate_conn(conn)
  File "lib/requests/packages/urllib3/connectionpool.py", line 727, in _validate_conn
    conn.connect()
  File "lib/requests/packages/urllib3/connection.py", line 238, in connect
    ssl_version=resolved_ssl_version)
  File "lib/requests/packages/urllib3/util/ssl_.py", line 254, in ssl_wrap_socket
    return context.wrap_socket(sock)
  File "/share/CACHEDEV2_DATA/.qpkg/Python/lib/python2.7/ssl.py", line 350, in wrap_socket
    _context=self)
  File "/share/CACHEDEV2_DATA/.qpkg/Python/lib/python2.7/ssl.py", line 537, in _ _init__
    raise ValueError("check_hostname requires server_hostname")
ValueError: check_hostname requires server_hostname
05-Feb-2016 12:38:39 - INFO :: MainThread : Starting PlexPy web server on http://0.0.0.0:8181/
05-Feb-2016 12:38:40 - INFO :: MainThread : Scheduled background task: Check Git   Hub for updates

:geek:

je vois qu'il y a également des requêtes sur le forum officiel, je vais vous faire le qpkg
 
:eek: Alors là, je dis bravo et merci Lacao ! C'est vraiment du très très bon boulot :ugeek:
Sinon, tu sais qu'on recrute sur Cachem ==> http://www.cachem.fr/cachem-recherche-nouveaux-talents/
 
QoolBox a dit:
sinon tu avait plus simple.. juste besoin d'installer Qgit 2.6.4, python étant de base dans le NAS, et tu ne semble pas avoir besoin de modules complémentaire

C'est fort possible ! J'ai fait à mesure des obstacles : me connecter en SSH à mon NAS, installer Git (je n'ai pas pensé à un QPKG), puis ensuite impossible de lancer le programme avec la commande python donc installation du module. Ça n'est probablement pas la solution la plus élégante, mais n'ayant rien trouvé sur Internet, cela m'a paru être le mieux ;).

En revanche, j'ai un soucis : le programme se ferme tout seul au bout d'un certain d'activité. Je n'arrive pas à savoir si c'est un crash ou si c'est un problème de paramétrage. Je suis à chaque fois obligé de le relancer en me connectant au NAS en SSH.

FX Cachem a dit:
Alors là, je dis bravo et merci Lacao ! C'est vraiment du très très bon boulot
Sinon, tu sais qu'on recrute sur Cachem ==> http://www.cachem.fr/cachem-recherche-nouveaux-talents/

Heureux que ça te plaise ;). Ç'aurait été avec plaisir mais sincèrement, j'ai de moins en moins de temps libre :|.