Extras et Astuces pour PLEX

PlexPy

Plexpy est un complément au serveur Plex, codé en python, il permet d'avoir des statistiques et graphique d'utilisation et un historique facilement consultable au travers d'une interface web de qui fait quoi sur le serveur plex en terme de visionnage et à partir de quoi et quelle IP

Source : Forum Plex : Topic PlexPy

Contexte

On part du fait que le serveur tourne sous Linux (Debian 8) et que le serveur Plex est déjà installé, pour ma part l'installation de PlexPy se fera sur la même machine que le serveur Plex Media Server lui-même.

Installer PlexPy

PlexPy s'installe dans le répertoire /opt/plexpy

Ouvrir un terminal (SSH/console) et installer Git (si ce n'est déjà fait)

apt-get install git-core

Aller dans /opt pour y cloner le github de “dzzoidberg33” concernant plexpy

cd /opt && git clone https://github.com/drzoidberg33/plexpy.git

Si on veut lancer et vérifier que tout va bien à ce stade (attention cette étape est facultative après nous allons le lancer comme service au démarrage)

cd plexpy && python PlexPy.py

Installer le mode daemon et le démarrage automatique

Créer le fichier vierge /etc/default/plexpy , créer un lien symbolique depuis le fichier source, le rendre exécutable, et l'ajouter au service qui démarrent avec l'OS

touch /etc/default/plexpy && ln -s /opt/plexpy/init-scripts/init.ubuntu /etc/init.d/plexpy && chmod +x /opt/plexpy/init-scripts/init.ubuntu && update-rc.d plexpy defaults

On démarre ensuite le service avec

service plexpy start

Configuration de PlexPy

On se rend à l'adresse http://mon_serveur_plexpy:8181 et suit l'assistant d'installation

On saisit les identifiants de connexion au compte Plex principal (admin) du serveur Plex

Une fois les idenfitiants saisis avant de cliquer sur “Next” cliquer sur “Authenticate” cela doit vous retournez “Authentication sucessful!”

L'assistant continu en demandant quel serveur Plex doit être analyser, s'il doit utiliser SSL ou encore si le serveur est distant (pour ma part je sélectionne mon serveur et continu)

Notons comme lors de la saisie des identifiants qu'il y a un bouton “Verify” afin de valider la connexiona avec le serveur

On choisit ensuite ce que PlexPy va monitorer

Puis dans quels cas il va nous notifier

Puis c'est terminé ! Cliquons sur “Finish”

La configuration reste modifiable et customisable via le menu

Pour ma part je modifie les textes des notifications afin de les avoir en français

notify_on_start_subject_text = PlexPy : {user} demarre la lecture de {title} (sur {server_name})
notify_on_start_body_text = {user} depuis {player} ({platform} avec IP:{ip_address}) a demarre la lecture de {title}<movie>({year})</movie><tv>({show_name} S{season_num}E{episode_num})</tv> et en est a {progress}min (soit {progress_percent}%).
notify_on_stop_subject_text = PlexPy : {user} a arrete la lecture de {title} (sur {server_name})
notify_on_stop_body_text = {user} depuis {player} ({platform} avec IP:{ip_address}) a arrete la lecture de {title}<movie>({year})</movie><tv>({show_name} S{season_num}E{episode_num})</tv> et en est a {progress}min (soit {progress_percent}%).
notify_on_pause_subject_text = PlexPy : {user} a mis sur pause la lecture de {title} (sur {server_name})
notify_on_pause_body_text = {user} depuis {player} ({platform} avec IP:{ip_address}) a mis en pause la lecture de {title}<movie>({year})</movie><tv>({show_name} S{season_num}E{episode_num})</tv> et en est a {progress}min (soit {progress_percent}%).
notify_on_resume_subject_text = PlexPy : {user} a repris la lecture de {title} (sur {server_name})
notify_on_resume_body_text = {user} depuis {player} ({platform} avec IP:{ip_address}) a repris la lecture de {title}<movie>({year})</movie><tv>({show_name} S{season_num}E{episode_num})</tv> et en est a {progress}min (soit {progress_percent}%).
notify_on_watched_subject_text = PlexPy : {user} a vu {title} (sur {server_name})
notify_on_watched_body_text = {user} depuis {player} ({platform} avec IP:{ip_address}) a vu {title}<movie>({year})</movie><tv>({show_name} S{season_num}E{episode_num})</tv> et a fini la lecture en {progress}min (soit {progress_percent}%).
notify_on_buffer_subject_text = PlexPy : {user} a des problemes de MISE EN CACHE pour voir {title} (sur {server_name})
notify_on_buffer_body_text = {user} depuis {player} ({platform} avec IP:{ip_address}) essaie de voir {title}<movie>({year})</movie><tv>({show_name} S{season_num}E{episode_num})</tv>mais a des problemes de MISE EN CACHE !!! (progression dans le media {progress}min (soit {progress_percent}%)).
notify_on_created_subject_text = PlexPy : Ajouts Récents sur {server_name}
notify_on_created_body_text = {title}<movie>({year})</movie><tv>({show_name} S{season_num}E{episode_num})</tv> a ete recemment ajoute au serveur Plex ({server_name})
notify_on_extdown_subject_text = PlexPy : Accès extérieur pour {server_name} HS !
notify_on_extdown_body_text = ATTENTION : Pas d'acces exterieur au serveur Plex {server_name} !
notify_on_intdown_subject_text = PlexPy : ATTENTION {server_name} HS !!!
notify_on_intdown_body_text = ATTENTION Panne critique sur {server_name}, Plex est HS !!!

Je configure ensuite ma “Pushbullet API Key” et mon serveur mail dans “Notifications Agents” afin de recevoir les notifications précédemment traduites…

Sauvegarder ou Restaurer les configurations et données de PlexPy

Il suffit pour cela d'arrêter le service plexpy, puis de copier/déplacer selon ce que l'on souhaite (sauvegarde ou restauration) les fichiers config.ini ET plexpy.db

Pour sauvegarder

service plexpy stop && cp /opt/plexpy/plexpy.db /opt/plexpy_backup/ && cp /opt/plexpy/config.ini /opt/plexpy_backup/ && service plexpy start

Pour restaurer

service plexpy stop && cp /opt/plexpy_backup/plexpy.db /opt/plexpy/ && cp /opt/plexpy_backup/config.ini /opt/plexpy/ && service plexpy start