Gerenciar centros de multimídia usando solicitações HTTP GET

Neste artigo, gostaria de falar sobre como você pode gerenciar atualmente os centros multimídia mais populares - KODI (XBMC) e Dune HD, usando solicitações HTTP GET.

Aqui serão descritas apenas as solicitações mais populares que podem ser controladas remotamente (por exemplo: na rede WiFi doméstica ou com as configurações apropriadas do roteador da rede INTERNET), não apenas usando scripts pré-escritos, mas simplesmente inserindo-os na barra de endereços do navegador. Não descreverei todos os pedidos aqui, porque: primeiro, muitos deles são usados ​​extremamente raramente e, segundo, há documentação completa para isso. Essas consultas também podem ser usadas para controlar centros multimídia ao criar sistemas Smart Home, que eu realmente usei para desenvolver os meus.

Aqui estão os pedidos:

1. Inicie um arquivo para reprodução.

Os links para arquivos devem ser diretos, ou seja, apontar explicitamente para o arquivo ou fluxo que está sendo reproduzido; os links do YouTube não são, portanto, não funcionarão. Como obter um link direto para um vídeo do Youtube, você pode ver aqui .

  • 1.1 KODI (XBMC) - http: // LOGIN : PASSWORD @ endereço IP : 8080 / jsonrpc? Request = {"jsonrpc": "2.0", "id": "1", "method": "Player.Open" , "Params": {"item": {"file": " URL "}}}
  • 1.2 Dune HD - http: // endereço IP / cgi-bin / do? Cmd = launch_media_url & media_url = URL

A seguir:

LOGIN - login definido nas configurações do KODI (servidor Web -> Permitir controle do Kodi sobre HTTP).
SENHA - a senha definida nas configurações do KODI (servidor da Web -> Permitir controle do Kodi sobre HTTP).
URL - endereço de rede ou Internet do recurso reproduzido.
endereço IP - endereço IP do dispositivo na rede doméstica ou na INTERNET.

Se você configurar o Dune HD para que, ao pressionar o botão POWER no controle remoto, ele entre no modo de espera e, quando solicitado a reproduzir um arquivo, ele será ativado automaticamente.

2. controle de volume.

  • 2.1 KODI (XBMC) - http: // LOGIN : SENHA @ endereço IP : 8080 / jsonrpc? Request = {"jsonrpc": "2.0", "id": "1", "method": "Application.SetVolume" , "Params": {"volume": 35 }}}
  • 2.2 Dune HD - http: // endereço IP / cgi-bin / do? Cmd = set_playback_state & volume = 35

Defina o nível do volume para 35.

3. Rebobine para uma posição específica.

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

Atenção! Para o KODI, o valor 50 é indicado em porcentagem e para o Dune HD em segundos, pois não possui essa função (eu o fiz - escrevi um pequeno script que obtém toda a duração da faixa e, por meio de cálculos simples, defini o valor já em porcentagem).

Há mais uma nuance - aqui e no futuro para o KODI, você primeiro precisa obter o valor "playerid" , esse é o ID do jogador ativo.

É obtido usando a seguinte solicitação: http: // LOGIN : PASSWORD @ endereço IP: 8080 / jsonrpc? Request = {"jsonrpc": "2.0", "method": "Player.GetActivePlayers", "id": "1"}, se bem me lembro, a ordem é aproximadamente a seguinte: para áudio - " playerid ": 0, para o vídeo -" playerid ": 1, para a foto -" playerid ": 2. Os valores devem ser do tipo inteiro, ou seja, números inteiros sem aspas.

4. Pausar / Reproduzir.

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

5. A próxima faixa na lista de reprodução.

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

Não há um comando explícito para o Dune HD, portanto, a transição para a próxima faixa é feita ao pressionar um botão no controle remoto. Na documentação, os códigos de comando estão escritos em um único local, por isso criei um arquivo com os comandos corretos, que podem ser obtidos aqui .

6. Faixa anterior na lista de reprodução.

  • 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ão se esqueça de colocar seu "playerid" em solicitações ao KODI (XBMC) .

Ainda há muitos tipos diferentes de consultas para esses centros de multimídia, com os quais você pode implementar praticamente qualquer funcionalidade. Como resultado, é possível obter, por exemplo , uma interface de gerenciamento baseada na Web na qual todas as ações com o painel de controle serão exibidas ou equipar o centro de multimídia com a capacidade de pesquisar por conteúdo, como música ou vídeo. Formatos de respostas dos centros multimídia: formato KODI (XBMC) - JSON, Dune HD - XML. O gerenciamento pode ser implementado em várias linguagens de programação que suportam o envio de solicitações HTTP GET e a capacidade de trabalhar com JSON. Para esse propósito, usei o conhecido php (curl, json_decode e para o DuneHD simplexml_load_file).

Materiais utilizados


DOCUMENTAÇÃO DE CONTROLE DE IP DO KODI / XBMC JSON-RPC_API / v6

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


All Articles