Плагин Majordomo для управления плеером Kodi

Жил да был в одном умном доме медиаплеер под управлением Kodibuntu. Киношки кажет, музыку играет — «Ай, молодец!» — не нарадуется хозяин.

Долго ли, коротко ли, да появилась в том умном доме домомучительница система управления Majordomo. Важная вся из себя, щеки надувает — «Все могу, все умею!».

Спрашивает ее хозяин — «А плеером Kodi управлять умеешь?»

«Не знаю бесовшины этой вашей заморской!» — отвечает Majordomo да еще пуще щеки дует.

Пригорюнился хозяин. Так хотелось ему управлять плеером да все из одного интерфейса важной Мажордомы. Не долго горевал он. «Не умеешь — научим, не хочешь — заставим» — как говоривали на руси, правда, на руси так не говоривали.

Решился хозяин да и написал плагин, чтобы подружить Majordomo да Kodi. Тут и сказки конец.

Суть задачи

Идея была в том, чтобы интегрировать простейшие функции управления музыкальным проигрывателем Kodi в интерфейс Majordomo. Чтобы на любую сцену можно было присобачить кнопочки включения, выключения, перемотки, выбора папки из которой играет музыка. Ну и конечно, чтобы отображалась композиция, играющая в настоящий момент.

На данный момент в Majordomo есть плагин, который позволяет управлять медиаплеером, НО, только развернутым локально на том же хосте.
Мне же нужен был плагин который позволит управлять плеером на удаленном хосте и, самое главное, иметь доступ к библиотеке музыки на том удаленном хосте.

Архитектура и принцип работы

Плагин получился состоящий из двух элементов:

  1. скрипта на php «kodi_api.php», который выполняет API запросы к хосту Kodi и возвращает данные
  2. объекта HTML, с помощью которого отображаются органы управления и происходит взаимодействие с пользователем в интерфейсе Majordomo.

На картинке ниже показано как взаимодействуют компоненты

kodi_majordomo

Результат

На данный момент плагин позволяет:

  • выбирать папки с музыкой (находящиеся на хосте Kodi), которые будут проигрываться;
  • останавливать и ставить на паузу текущую композицию;
  • переходить на следующую и предыдущую композицию в рамках проигрываемой в данный момент папки;
  • включать и выключать функцию случайного порядка воспроизведения (Shuffle).

Также в отдельном поле плагин отображает композицию, воспроизводимую в данный момент.

Внешний вид на рисунке ниже.