Gérer les centres multimédias à l'aide de requêtes HTTP GET

Dans cet article, je voudrais parler de la façon dont vous pouvez gérer actuellement les centres multimédias les plus populaires - KODI (XBMC) et Dune HD, en utilisant les requêtes HTTP GET.

Nous ne décrirons ici que les demandes les plus populaires qui peuvent être contrôlées à distance (par exemple: dans le réseau WiFi domestique ou avec les paramètres appropriés du routeur depuis le réseau INTERNET), non seulement à l'aide de scripts pré-écrits, mais simplement en les entrant dans la barre d'adresse du navigateur. Je ne décrirai pas toutes les demandes ici, car: premièrement, beaucoup d'entre elles sont utilisées extrêmement rarement, et deuxièmement, il y a une documentation complète pour cela. Ces requêtes peuvent également être utilisées pour contrôler les centres multimédias lors de la construction de systèmes Smart Home, que j'ai en fait utilisé pour développer les miens.

Voici les demandes mêmes:

1. Lancez un fichier pour la lecture.

Les liens vers des fichiers doivent être directs, c'est-à-dire pointer explicitement vers le fichier ou le flux en cours de lecture, les liens de Youtube ne sont donc pas fonctionnels. Comment obtenir un lien direct vers une vidéo de Youtube, vous pouvez voir ici .

  • 1.1 KODI (XBMC) - http: // LOGIN : PASSWORD @ ip-address : 8080 / jsonrpc? Request = {"jsonrpc": "2.0", "id": "1", "method": "Player.Open" , "Paramètres": {"élément": {"fichier": " URL "}}}
  • 1.2 Dune HD - http: // adresse IP / cgi-bin / do? Cmd = launch_media_url & media_url = URL

Ci-après:

LOGIN - ensemble de connexion dans les paramètres KODI (serveur Web -> Autoriser le contrôle Kodi sur HTTP).
MOT DE PASSE - le mot de passe défini dans les paramètres KODI (serveur Web -> Autoriser le contrôle Kodi sur HTTP).
URL - adresse réseau ou Internet de la ressource reproduite.
ip-address - Adresse IP de l'appareil sur le réseau domestique ou INTERNET.

Si vous configurez Dune HD de sorte que lorsque vous appuyez sur le bouton POWER de la télécommande, il passe en mode veille, puis lorsque vous êtes invité à lire un fichier, il s'allume automatiquement.

2. Contrôle du volume.

  • 2.1 KODI (XBMC) - http: // LOGIN : PASSWORD @ ip-address : 8080 / jsonrpc? Request = {"jsonrpc": "2.0", "id": "1", "method": "Application.SetVolume" , "Paramètres": {"volume": 35 }}}
  • 2.2 Dune HD - http: // adresse IP / cgi-bin / do? Cmd = set_playback_state & volume = 35

Réglez le niveau de volume sur 35.

3. Rembobinez à une position spécifique.

  • 3.1 KODI (XBMC) - http: // LOGIN : PASSWORD @ ip-address : 8080 / jsonrpc? Request = {"jsonrpc": "2.0", "method": "Player.Seek", "params": { "playerid ": 0 ," valeur ": 50 }," id ":" 1 "}
  • 3.2 Dune HD - http: // adresse IP / cgi-bin / do? Cmd = set_playback_state & position = 50

Attention! Pour KODI, la valeur 50 est indiquée en pourcentage, et pour Dune HD en secondes car elle ne dispose pas d'une telle fonction (je l'ai fait - j'ai écrit un petit script qui obtient la durée totale de la piste, et au moyen de calculs simples j'ai défini la valeur déjà en pourcentage).

Il y a une autre nuance - ici et à l'avenir pour KODI, vous devez d'abord obtenir la valeur "playerid" , c'est l'id du joueur actif.

Il est obtenu à l'aide de la demande suivante: http: // LOGIN : PASSWORD @ ip-address: 8080 / jsonrpc? Request = {"jsonrpc": "2.0", "method": "Player.GetActivePlayers", "id": "1"}, si je me souviens bien, l'ordre est approximativement le suivant: pour l'audio - " playerid ": 0, pour la vidéo -" playerid ": 1, pour la photo -" playerid ": 2. Les valeurs doivent être de type entier, c'est-à-dire des entiers sans guillemets.

4. Pause / lecture.

  • 4.1 KODI (XBMC) - http: // LOGIN : PASSWORD @ ip-address : 8080 / jsonrpc? Request = {"jsonrpc": "2.0", "id": "1", "method": "Player.PlayPause" , "Params": { "playerid": 0 }}
  • 4.2 Dune HD - http: // adresse IP / cgi-bin / do? Cmd = set_playback_state & speed = 0 - pause / 256 - lecture

5. La piste suivante de la liste de lecture.

  • 5.1 KODI (XBMC) - http: // LOGIN : PASSWORD @ ip-address : 8080 / jsonrpc? Request = {"jsonrpc": "2.0", "id": "1", "method": "Player.GoTo" , "Params": { "playerid": 0 , "to": "next" }} -
  • 5.2 Dune HD - http: // adresse IP / cgi-bin / do? Cmd = ir_code & ir_code = E21DBF000

Il n'y a pas de commande explicite pour Dune HD, donc la transition vers la piste suivante se fait en émulant une pression sur le bouton de la télécommande. Dans la documentation, les codes de commande sont écrits en un seul endroit, j'ai donc fait un fichier avec les commandes correctes, qui peuvent être prises ici .

6. Piste précédente de la liste de lecture.

  • 6.1 KODI (XBMC) — http://LOGIN:PASSWORD@ip-address:8080/jsonrpc?request={«jsonrpc»:«2.0»,«id»:«1»,«method»:«Player.GoTo»,«params»:{«playerid»:0,«to»:«previous»}} -
  • 6.2 Dune HD — http://ip-address/cgi-bin/do?cmd=ir_code&ir_code=B649BF00

N'oubliez pas de mettre votre "playerid" dans les requêtes à KODI (XBMC) .

Il existe toujours une masse de différents types de requêtes pour ces centres multimédias, avec lesquels vous pouvez implémenter presque toutes les fonctionnalités. En conséquence, vous pouvez obtenir, par exemple , une telle interface de gestion basée sur le Web sur laquelle toutes les actions avec le panneau de contrôle seront affichées, ou équiper le centre multimédia de la possibilité de rechercher vocalement des contenus tels que la musique ou la vidéo. Formats de réponses des centres multimédias: KODI (XBMC) - format JSON, Dune HD - format XML. La gestion peut être implémentée dans différents langages de programmation qui prennent en charge l'envoi de requêtes HTTP GET, et la possibilité de travailler avec JSON, à cette fin, j'ai utilisé le php bien connu (curl, json_decode et pour DuneHD simplexml_load_file).

Matériaux utilisés


DOCUMENTATION DE CONTRÔLE IP JSON-RPC_API / v6 Kodi / XBMC
DUNE

Source: https://habr.com/ru/post/fr388279/


All Articles