[TUTO] utiliser Plex Media Scanner en ligne de commande sous linux
Soumis par kacy le
J'ai remarqué, et subit, le fait que Plex ne remet pas a jour correctement la bibliothèque, particulièrement quand on ajoute des fichier de sous-titres ou autres modifs.
En gros la majorité des opérations de modifs/maj sont zappées, du coup on passe deux plombes a essayer de faire activer le fichier de sous-titre ou le film ajouté...
Bref, ça m'a gavé, du coup j'ai décidé de jeter un oeil à ce qu'il était possible de faire en mode ligne de commande, j'ai découvert avec surprise qu'il existait des choses qui permettaient de faire les manips pour lesquelles je galerais (vu que le refresh de librairie n'est pas géré dans le client iOS/Android, obligé de passer par l'interface web, bref le gros boxon je trouve).
D'autant plus que j'avais coché les p'tites options qui vont bien pour scanner les librairies tous les jours, mais qui ne marchent pas visiblement...
Bref, c'est super simple en fait :
Nativement Plex pose ses executable dans /usr/lib/plexmediaserver. Donc on a deux choses 'Plex Media Server' et 'Plex Media Scanner', oui avec des espaces, le truc relou en mode ligne de commande.
J'ai donc décidé de faire un p'tit raccourci pour le lancer en une commande sans espace, après moult essais j'ai réussi en passant par un script qui fait ça :
sudo touch /usr/local/bin/plexmediascanner.sh sudo chmod +x /usr/local/bin/plexmediascanner.sh sudo vi /usr/local/bin/plexmediascanner.sh #!/bin/sh PLEX_RUNNABLE="`which Plex\ Media\ Scanner`" sudo LD_LIBRARY_PATH=${LD_LIBRARY_PATH} -u plex "${PLEX_RUNNABLE}" $@
Et pour faire propre on met aussi le server :
sudo touch /usr/local/bin/plexmediaserver.sh sudo chmod +x /usr/local/bin/plexmediaserver.sh sudo vi /usr/local/bin/plexmediaserver.sh #!/bin/sh PLEX_RUNNABLE="`which Plex\ Media\ Server`" sudo LD_LIBRARY_PATH=${LD_LIBRARY_PATH} -u plex "${PLEX_RUNNABLE}" $@
Tout ça combiné à un PATH enrichi d'un script qui va bien dans le profile.d :
sudo touch /etc/profile.d/plex.sh sudo chmod +x /etc/profile.d/plex.sh sudo vi /etc/profile.d/plex.sh #!/bin/sh #on set le home de plex PLEX_PATH=/usr/lib/plexmediaserver #on ajoute le home dans le libpath export LD_LIBRARY_PATH=${PLEX_PATH} #on ajoute le home au PATH pathmunge ${PLEX_PATH}
Du coup il est maintenant possible avec un user autorisé en SUDO NOPASSWD (oui OK c'est moche mais je m'en tape ma VM ne fait que media server... j'améliorerais ça plus tard :P ) de lancer la commande plexmediascanner --list et ça marche ;)
EDIT : bon alors pour la problématique du sudo, j'ai réussi à faire marcher le biniou avec un p'tit coup de conf SUDO, lancer visudo et ajouter les infos suivantes :
Defaults env_keep += "LD_LIBRARY_PATH" Defaults env_keep += "PLEX_PATH" [...] %ungroupe ALL=(ALL) NOPASSWD: /usr/lib/plexmediaserver/Plex\ Media\ Scanner %ungroupe ALL=(ALL) NOPASSWD: /sbin/service plexmediaserver*
Avec ça, le passage de LD_LIBRARY_PATH dans la commande est autorisé, et mon user a le droit de lancer plexmediascanner et de faire des arrêts relance du service plexmediaserver sans mot de passe. Pour le reste, il faut le mot de passe...