Administre centros multimedia usando solicitudes HTTP GET

En este artículo me gustaría hablar sobre cómo puede administrar en este momento los centros multimedia más populares: KODI (XBMC) y Dune HD, utilizando solicitudes HTTP GET.

Aquí se describirán solo las solicitudes más populares que se pueden controlar de forma remota (por ejemplo: dentro de la red WiFi doméstica o con la configuración adecuada del enrutador desde la red de INTERNET), no solo usando scripts escritos previamente, sino simplemente ingresándolos en la barra de direcciones del navegador. No describiré todas las solicitudes aquí, porque: en primer lugar, muchas de ellas se usan muy raramente, y en segundo lugar, hay documentación completa para esto. Estas consultas también se pueden utilizar para controlar los centros multimedia cuando se crean sistemas Smart Home, que en realidad solía desarrollar por mi cuenta.

Aquí están las mismas solicitudes:

1. Inicie un archivo para reproducir.

Los enlaces a los archivos deben ser directos, es decir, señalar explícitamente el archivo o la transmisión que se está reproduciendo, los enlaces de Youtube no son, por lo tanto, no funcionarán. Cómo obtener un enlace directo a un video desde Youtube, puede ver aquí .

  • 1.1 KODI (XBMC) - http: // INICIAR SESIÓN : CONTRASEÑA @ dirección IP : 8080 / jsonrpc? Solicitud = {"jsonrpc": "2.0", "id": "1", "método": "Player.Open" , "Parámetros": {"elemento": {"archivo": " URL "}}}
  • 1.2 Dune HD - http: // dirección-ip / cgi-bin / do? Cmd = launch_media_url & media_url = URL

En lo sucesivo:

INICIAR SESIÓN : inicio de sesión configurado en la configuración de KODI (servidor web -> Permitir el control de Kodi sobre HTTP).
CONTRASEÑA : la contraseña establecida en la configuración de KODI (servidor web -> Permitir el control de Kodi sobre HTTP).
URL : red o dirección de Internet del recurso reproducido.
dirección IP: dirección IP del dispositivo en la red doméstica o de INTERNET.

Si configura Dune HD de modo que cuando presiona el botón ENCENDIDO del control remoto, pasa al modo de espera, luego, cuando se le pide que reproduzca el archivo, se enciende automáticamente.

2. Control de volumen.

  • 2.1 KODI (XBMC) - http: // INICIAR SESIÓN : CONTRASEÑA @ dirección IP : 8080 / jsonrpc? Solicitud = {"jsonrpc": "2.0", "id": "1", "método": "Application.SetVolume" , "Parámetros": {"volumen": 35 }}}
  • 2.2 Dune HD - http: // dirección-ip / cgi-bin / do? Cmd = set_playback_state & volume = 35

Establezca el nivel de volumen en 35.

3. Retroceda a una posición específica.

  • 3.1 KODI (XBMC) - http: // INICIAR SESIÓN : CONTRASEÑA @ dirección IP : 8080 / jsonrpc? Solicitud = {"jsonrpc": "2.0", "método": "Player.Seek", "params": { "playerid ": 0 ," valor ": 50 }," id ":" 1 "}
  • 3.2 Dune HD - http: // dirección-ip / cgi-bin / do? Cmd = set_playback_state & position = 50

Atencion Para KODI, el valor 50 se indica en porcentaje, y para Dune HD en segundos, ya que no tiene esa función (lo hice; escribí un pequeño script que obtiene la duración completa de la pista, y mediante cálculos simples establecí el valor ya en porcentaje).

Hay un matiz más: aquí y en el futuro para KODI primero necesitas obtener el valor "playerid" , esta es la identificación del jugador activo.

Se obtiene mediante la siguiente solicitud: http: // LOGIN : PASSWORD @ ip-address: 8080 / jsonrpc? Request = {"jsonrpc": "2.0", "method": "Player.GetActivePlayers", "id": "1"}, si recuerdo correctamente, el orden es aproximadamente el siguiente: para audio - " playerid ": 0, para el video -" playerid ": 1, para la foto -" playerid ": 2. Los valores deben ser de tipo entero, es decir, enteros sin comillas.

4. Pausa / Reproducir.

  • 4.1 KODI (XBMC) - http: // INICIAR SESIÓN : CONTRASEÑA @ dirección IP : 8080 / jsonrpc? Solicitud = {"jsonrpc": "2.0", "id": "1", "método": "Player.PlayPause" , "Parámetros": { "playerid": 0 }}
  • 4.2 Dune HD - http: // dirección-ip / cgi-bin / do? Cmd = set_playback_state & speed = 0 - pausa / 256 - reproducir

5. La siguiente pista en la lista de reproducción.

  • 5.1 KODI (XBMC) - http: // INICIAR SESIÓN : CONTRASEÑA @ dirección IP : 8080 / jsonrpc? Solicitud = {"jsonrpc": "2.0", "id": "1", "método": "Player.GoTo" , "Params": { "playerid": 0 , "to": "next" }} -
  • 5.2 Dune HD - http: // dirección-ip / cgi-bin / do? Cmd = ir_code & ir_code = E21DBF000

Para Dune HD no hay un comando de indicación explícito, por lo que la transición a la siguiente pista se realiza emulando un botón al presionar el control remoto. En la documentación, los códigos de comando están escritos en un solo lugar, así que hice un archivo con los comandos correctos, que se pueden tomar aquí .

6. Pista anterior en la lista de reproducción.

  • 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

No olvide poner su "ID de jugador" en las solicitudes a KODI (XBMC) .

Todavía hay una gran cantidad de diferentes tipos de consultas para estos centros multimedia, con los que puede implementar casi cualquier funcionalidad. Como resultado, puede obtener, por ejemplo , una interfaz de administración basada en la web en la que se mostrarán todas las acciones con el panel de control, o equipar al centro multimedia con la capacidad de buscar por voz contenido como música o video. Formatos de respuestas del centro multimedia: KODI (XBMC) - formato JSON, Dune HD - formato XML. La administración se puede implementar en varios lenguajes de programación que admiten el envío de solicitudes HTTP GET y la capacidad de trabajar con JSON, para este propósito utilicé el conocido php (curl, json_decode y DuneHD simplexml_load_file).

Materiales utilizados


JSON-RPC_API / v6 KODi / XBMC
DUNE IP DOCUMENTACIÓN DE CONTROL

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


All Articles