lundi 6 mars 2017

Domotique: script pour plex

Je ne sais pas si vous connaissez plex mais moi j'utilise pour mes films et séries. C'est du tonnerre. J'ai eu donc besoin de savoir quel film était en lecture a tout moment (pour surveiller l'usage, il faut avouer ;-) Donc j'ai cherché un script et j'ai fini par utiliser celui-ci que j'ai testé avec succès sous jeedom. Comme vous le verrez surement c'est un script Python Domoticz à l'origine que j'ai adapté. Le voici: enjoy ! (depuis l'update le script ne ressemble plus du tout à celui de Domoticz)

Mise à jour du 26/05/2017: j'ai mis à jour le script parce que Plex demande maintenant un token pour faire cela et utilise votre login/password plex en plus.Il faudra changer dans le script comme l'adresse ip voir le port si votre serveur en utilise un autre que celui en 32400.


#!/usr/bin/python
import urllib, urllib2, hashlib
import httplib, base64
import json
import sys

#config plex url (à modifier pour vos besoins ;-)
plexURL          = '192.168.0.XXX:32400' #base url (default port = 32400)
username = "votre login a mettre ici"
password = "votre password a mettre ici"

base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
txdata = ""

headers={'Authorization': "Basic %s" % base64string,
                'X-Plex-Client-Identifier': "Test script",
                'X-Plex-Product': "Test script 356546545",
                'X-Plex-Version': "0.001"}

conn = httplib.HTTPSConnection("plex.tv")
conn.request("POST","/users/sign_in.json",txdata,headers)
response = conn.getresponse()
resp = json.load(response);

#extract an element in the response
plexToken = resp["user"]["authToken"]
conn.close()

#building url
requestURL = 'http://'+plexURL+'/status/sessions?X-Plex-Token='+plexToken

from xml.etree import ElementTree as ET

try:
  #call session url
  test = urllib.urlopen(requestURL).read()
  root = ET.XML(test)
  videotitle = root.find('Video').attrib['title']
  print videotitle.encode('utf8')
except Exception:
  print 'N/A'
  pass

Et dans jeedom je l'ai intégré ainsi pour la partie script: (cliquez sur l'image pour zoomer)


Puis dans la partie scénario et avec l'aide de pushbullet (plugin pour recevoir des notification:
(cliquez sur l'image pour zoomer)



Et voilà, j'ai juste voulu partager cela avec vous parce que c'est vraiment sympa surtout pour ceux qui utilise Plex. Pour plus d'info sur plex, allez voir ici: https://www.plex.tv/fr/

5 commentaires :

  1. Est-ce que ce plugin est toujours fonctionnel ?
    En cherchant sur le net, je vois par-ci par-là différent échos... Certains disent même qu'il faut le Plex Pass. Pourriez-vous confirmer qu'avec ce script il n'y a pas besoin du Plex Pass ?
    Merci !

    RépondreSupprimer
    Réponses

    1. Re-Bonjour Coach,
      Je n'utilise plus plex en ce moment.. donc je vais redémarrer mon serveur et je vous ferais un test pour confirmer cela ;-).
      Je vous tiens au courant.... peut être très vite...;-)

      Supprimer

    2. C'est bon, j'ai testé avec un serveur en version 1.13.0.5023 sur windows 10 et en lisant une vidéo à partir de mon téléphone. Je n'ai pas la version payante (ni d'abonnement) pour plex. Le script a bien vu le nom du film et j'ai été notifié comme prévu.
      Enjoy !

      Supprimer
    3. Au fait, un détail surement, j'avais dis re-bonjour dans ma première réponse parce que j'avais pensé avoir déjà répondu sur le sujet Xiaomi/Zigate ;-) et finalement j'ai envoyé ma réponse sur Plex avant ;-) désolé.

      Supprimer
  2. Hello,
    Ok merci pour ce retour d'expérience !

    RépondreSupprimer