Contrôler Kodi avec votre assistant Google

Featured Video Play Icon
Contrôler Kodi avec votre assistant Google

Aujourd’hui, nous allons réunir deux sujets qui me tiennent à cœur. Si vous avez suivi les articles précédents, vous avez compris que nous utilisons Google Home et son assistant pour contrôler l’ensemble de la maison à la voix : lumières, volets, musique…

Il y a un point non exploité qui m’intéressait de contrôler : mon centre multimédia Kodi. Mais à quoi cela sert ?

Il est vrai que tout le monde a une télécommande et qu’elle est efficace. Le problème est qu’elle l’est beaucoup moins dès le moment où la bibliothèque multimédia commence à être bien fournie. Il est par exemple difficile de trouver un film en particulier au milieu de plusieurs centaines d’éléments et la recherche sur Kodi est dans ce cas peu ergonomique à la télécommande.

Vous devez bien évidemment posséder l’original de vos films téléchargés, respectant le cadre de la copie privée.

J’ai également été déçu par la nouvelle version de Kodi qui s’annonçait compatible avec Google Assistant. La seule chose qu’il est possible de faire est la recherche dans les médias Kodi à travers l’interface d’Android TV, rien de bien sexy.

Ici, nous allons donc voir une méthode pour contrôler ce lecteur multimédia à la voix, et les avantages que cela peut apporter.

Commençons par la configuration :

Configuration de Kodi

Commençons par configurer Kodi. Pour cela, rendez-vous dans les paramètres du logiciel, puis dans « Services ». Dans la partie « Serveur web », autorisez alors le contrôle à distance. Entrez un mot de passe et autorisez le contrôle à distance.

Configuration du serveur web de Kodi
Configuration du serveur web de Kodi

Cela va avoir pour conséquence d’exposer une application web sur votre réseau local vous permettant de contrôler Kodi à partir de votre navigateur.

Pour vérifier que tout fonctionne, récupérez l’adresse IP de la machine où est installé Kodi. Pour cela, vous pouvez vous rendre dans les paramètres dans la partie « Infos sur le système ».

Récupérer l'adresse IP de Kodi
Récupérer l’adresse IP de Kodi

Ouvrez alors un navigateur sur votre PC ou smartphone et tapez cette adresse IP. Si votre serveur est bien configuré, vous devriez voir l’interface web permettant de contrôler votre lecteur multimédia.

La page web exposée par le serveur web de Kodi
La page web exposée par le serveur web de Kodi

Si tout est OK, amusez vous un peu avec le contrôle de Kodi avant de passer à la suite.

Présentation de l’application GoogleHomeKodi

Il s’agit d’une application Node.js permettant le contrôle de Kodi à travers des API confectionnées pour fonctionner avec Google Assistant et IFTTT. Alors oui sur le papier, ça paraît un peu complexe. Nous allons voir point par point à quoi cela correspond :

  • Nous avons déjà parlé de Node.js qui est une plateforme de développement basée sur le langage JavaScript. Cela permet de réaliser rapidement des applications web.
  • Cette application expose des API (Application Programming Interface), c’est à dire des interfaces auxquelles une application tierce tel que IFTTT va pouvoir se brancher.
  • IFTTT utilise ces API pour connecter divers services entre eux — c’est sa spécialité. Et comme nous avons vu précédemment, il est capable de brancher une commande vocale Google Assistant à un appel API.
Si vous êtes un fin lecteur du site, vous comprendrez qu’il s’agit souvent d’utiliser les mêmes éléments d’un article à l’autre. La standardisation autour des API a en effet permis des intéractions fortes entre deux systèmes tel que Google Assistant et d’autres services.

Installation de GoogleHomeKodi

Tout est clair pour vous, attaquons avec le téléchargement du projet GitHub. Pour cela, utilisez le bouton « Clone or download » sur la page du projet ou utilisez la commande « git clone » dans un terminal.

Installez ensuite un serveur Node.js permettant de déployer notre application. Pour cela plusieurs possibilités :

  • Installer Node (Node 6 minimum) sur une machine locale. Cela peut être sur un PC Windows, un Raspberry Pi, un NAS Synology…
  • Installer Node.js dans un conteneur Docker
  • Déployer l’application sur Glitch(qui permet d’héberger des applications)

Chaque méthode à son lot d’avantages et d’inconvénients, dans notre cas, nous allons nous intéresser à une installation locale. Vous pouvez consulter la documentation si vous souhaitez mettre en place les autres méthodes.

Si vous ne possédez pas Node sur votre machine, installez le via la page de téléchargement.

Pour continuer, vous devez posséder un gestionnaire de dépendance pour récupérer les bibliothèques nécessaires au bon fonctionnement de l’application. Vous pouvez utiliser npm (node package manager) qui est installé par défaut dans l’installation de Node.

Une fois cette étape faite, il vous suffit de lancer la ligne de commande « npm install » dans le dossier de l’application. Les dépendances du projet seront alors téléchargées dans le dossier « node_modules ».

Configuration de GoogleHomeKodi

Dans le répertoire de l’application, copiez-collez le fichier « kodi-hosts.config.js.dist » présent à la racine du dossier et renommez le en « kodi-hosts.config.js ».

Éditez ensuite le nouveau fichier tel que :

Entrez les informations relatives à votre instance de Kodi (adresse IP, port, utilisateur, mot de passe). Remarquez que l’application peut gérer plusieurs instances de Kodi. Nous nous intéresserons qu’à une seule dans le cadre de notre exemple.

Dans la partie « globalConfig », vous pouvez définir la clé d’authentification qui sera à reporter dans IFTTT, le port de l’application ainsi que la clé d’utilisation de Youtube (si vous utilisez les commandes liées à Youtube).

Lancez l’application avec la ligne de commande « node server.js ». Si tout se passe bien, un message vous indiquera le port sur lequel votre application est déployée.

Testez-la en démarrant un navigateur et en entrant localhost:le-port. Vous devriez voir cette interface :

L'interface de l'application GoogleHomeKodi
L’interface de l’application GoogleHomeKodi

Cette page vous permet de tester les API et le lien jusqu’à Kodi. Vérifiez la connexion avec la route « /koditestconnection » et testez l’une des commandes par exemple la recherche de film avec la route « /playmovie?q=exempledefilm ».

Tout fonctionne ? Passons à l’étape suivante

L’ouverture à l’extérieur

Nous avons déjà abordé ce point à maintes reprises. Pour que votre application locale soit accessible de l’extérieur de chez vous, il est nécessaire de configurer votre routeur de tel sorte qu’il accepte les échanges directs avec le serveur Node. Pour cela, vous devez :

  • Connaître votre adresse IP externe ainsi que l’adresse IP interne du serveur de l’application
  • Créer des règles NAT pour rediriger les échanges avec ces adresses
  • Si votre IP n’est pas fixe, il vous faudra passer par un service de dynDNS

Je vous laisse consulter l’article Installez Home-assistant sur lequel ces points ont déjà été abordés.

Configuration de IFTTT

Encore une fois, nous sommes sur du redit ici. Je vais passer rapidement, donc n’hésitez pas à consulter nos articles sur IFTTT avant. Dans notre cas, créez un nouvel applet qui prend une commande Google Assistant en entrée et permet l’appel à une API en sortie (Webhooks).

Je vous conseille de placer l’ingrédient $ (le paramètre) à la fin de la phrase. J’ai pu avoir quelques surprises en plaçant le $ au milieu.

Configuration de Google Assistant dans IFTTT
Configuration de Google Assistant dans IFTTT
Configuration du Webhooks dans IFTTT
Configuration du Webhooks dans IFTTT

Essayez une API de votre choix, par exemple, celle pour jouer un film (playmovie). Le paramètre TextField permet d’insérer le nom du film que Google Assistant aura transmis à IFTTT. Utilisez la méthode POST et le contenu json. Dans le corps de la requête, pensez bien à mettre le token que vous avez défini dans la configuration de l’application.

Utilisation

Testez votre applet. Si tout fonctionne sur cet exemple, vous pouvez implémenter d’autres applets selon ce que vous souhaitez contrôler dans Kodi comme lancer l’épisode suivant d’une série, mettre en pause…. Le choix est vaste et le travail de création d’applet peut être fastidieux.

Vous retrouverez toutes les possibilités de l’application ci dessous :

  • Jouer un film, un genre de film, un film aléatoire d’une certaine année
  • Reprendre un film
  • Jouer le prochain épisode non vue d’une série
  • Reprendre le dernier épisode en cours d’une série
  • Binge watch une série
  • Démarrer un épisode aléatoire ou particulier d’une série
  • Jouer un nouvel épisode de séries
  • Lancer une chanson, un album, un artiste, un genre de musique
  • Contrôle du lecteur : pause, stop, couper le son, changer le volume du son, navigation
  • Contrôle de Kodi : activer, arrêt, veille, hibernation, redémarrer
  • … et plus encore

Certaines commandes peuvent s’avérer utiles, les commandes de bases pour la navigation sont — je pense — peu intéressantes.

À partir de cela, de nombreux scénarios peuvent venir se greffer notamment à partir de Google Home, comme nous avons pu le voir dans cet article.

Il est également intéressant de pouvoir démarrer Kodi grâce au HDMI CEC lorsque ce dernier est en veille. Cela est bien prévu par l’application et un plugin Kodi, mais cela n’a pas fonctionné pendant mes tests.

Enfin, le contrôle vocal prend toute sa dimension lorsque l’on possède une box Android TV avec un micro intégré à la télécommande. C’est le combo parfait pour naviguer au plus vite dans votre bibliothèque multimédia.

Quelques inconvénients

Ce système peut aussi avoir quelques inconvénients. Le système devient en effet complexe avec 3 applications nécessaires pour passer une commande vocale. Et cela se ressent lorsque l’on rencontre des problèmes.

Par exemple, si votre serveur est éteint ou que vous rencontrez un problème, Google vous répondra OK sans pour autant exécuter l’action. IFTTT agit en effet bêtement en tant que relayeur. Je vous conseille donc d’avoir un œil sur les logs de l’application au début pour vérifier chacune de vos commandes.

Conclusion

Les possibilités sont grandes quand au contrôle de Kodi et encore une fois, la création des scénarios dépend plus de votre imagination que des limitations techniques.

Cela peut être intéressant en attendant que Kodi intègre complètement Google Assistant.

Si vous rencontrez des problèmes, n’hésitez pas à consulter la documentation (en Anglais), elle est très bien réalisée.

11 réponses

  1. misterT dit :

    Bonjour,

    Est-il possible de faire la même chose avec une application IPTV sur kodi. Et de lancer par exemple « ok google, lance TF1 » ou « Ok google, met le film … »

    • Jérémy Paris dit :

      Bonjour,
      s’il s’agit d’un plugin IPTV, je ne pense pas. Vous pouvez uniquement démarrer une extension à la voix.
      Il est également possible de contrôler le changement des chaînes PVR (lance tf1, mais je ne pense pas d’indiquer un film du guide tv).
      A tester donc selon votre cas.

  2. Stéphane.kodi dit :

    Bonjour j ai pas tout compris sur l installation sur un sysnology que dois je installer exactement

    • Jérémy Paris dit :

      Bonjour Stéphane,
      pour l’installation sur un NAS Synology, il faut commencer par installer Node.js puis vérifier que l’application se lance bien, avant de créer un script pour lancer l’application au démarrage du NAS. Je vous conseille de regarder des exemples sur Google ou cette vidéo : https://www.youtube.com/watch?v=tkbu3TT5LT8

  3. gruson dit :

    bonjour jérémy merci pour ton tuto !
    j’ai juste une question, comment je peux avoir l’adresse ip du serveur node que je dois renseigner dans ifttt ?
    merci d’avance pour ta réponse
    olivier

    • Jérémy Paris dit :

      Bonjour gruson,
      cela dépend, si votre serveur node est hébergé sur votre réseau local. Si c’est le cas, il faut connaître votre IP publique (http://www.mon-ip.com/). Il faut ensuite déclarer une règle NAT dans votre routeur permettant d’accéder directement au serveur depuis l’extérieur (ouverture de ports). Bon courage.

  4. Franck dit :

    Bonjour Jérémy,
    Merci pour ton tuto très intéressant mais de la même manière est il possible de contrôler Kodi sur une Xiaomi MiBox TV?
    Merci d’avance pour ta réponse.

    • Jérémy Paris dit :

      Bonjour Franck, merci pour votre message. Oui il est tout à fait possible de contrôler Kodi sur une box Xiaomi Mi box TV. C’est d’ailleurs ce que je fais dans la vidéo de démonstration.

  5. Bruno dit :

    Bonjour. Le sujet n’est pas récent mais j’aurais aimé savoir si vous pouviez m’aider. J’ai kodi installé sur une Android box relié à ma livebox et j’ai le serveur node sur mon PC windows 10 pro. Lorsque je tape mon adresse ip externe avec le port 8099, j’ai bien une page qui s’ouvre et lorsque j’exécute le test de connexion, celui ci marche (message sur mon écran de tv). Seulement lorsque je veux lancer un film en appelant le Google home, j’ai un message d’erreur sur IFTTT : soit Error Ehostunreach avec adresse ip externe:8099 lorsque j’ouvre le port 8099 avec l’adresse IP de mon ordi, soit j’ai un message Error Econnrefused lorsque j’ouvre le port 8099 avec l’adresse ip de mon Android box. Pouvez vous m’aider ? Avez-vous une solution ?

  6. Bruno dit :

    J’ai oublié de préciser, je mets l’adresse externe dans ma configuration d’ifttt

  1. 26 mars 2019

    […] Aujourd’hui, nous allons réunir deux sujets qui me tiennent à cœur. Si vous avez suivi les articles précédents, vous avez compris que nous utilisons Google Home et son assistant pour contrôler l’ensemble de la...   Source: Devotics […]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.