Драйвер Kodi

Fork me on GitHub
Драйвер используется для управления медиа проигрывателем kodi по протоколу JSON-RPC API.

Информация

Актуальная версия
Необходимые условия Установленный проигрователь kodi. Node JS версии 0.12+
Разработчик instalator
Ключевые слова
управление, мультимедиа
Github icon_link Ссылка
Платформа Javascript/Node.js
Лицензия MIT

Описание

Kodi — бесплатный кроссплатформенный медиаплеер и программное обеспечение для организации HTPC (Home Theatre Personal Computer) с открытым исходным кодом. Простыми словами это медиа-центр для воспроизведения видео, музыки, картинок, игр и многое другое из локальных, сетевых источников, а так же из сети интернет.

Официальная документация Kodi JSON-RPC API находится здесь, а полный список доступных команд (для протокола версии 6) можно посмотреть на этой странице.

Поддерживаемые платформы

Windows Linux Raspberry Pi Android iOS (jailbroken) Mac OS X

Скачать kodi для вашей платформы можно на официальном сайте.

Настройка Kodi

После установки проигрывателя Kodi, его необходимо настроить для возможности управления проигрывателем через драйвер kodi.

В меню НастройкиСлужбы Удаленное управление активируем два чек бокса:
По умолчанию JSON-RPC API использует порт 9090, для того чтобы его изменить необходимо внести изменения в файл advancedsettings.xml*.  добавив в него следующие настройки:

* Изначально этого файла у вас нет и  его необходимо сначала создать.

Для возможности отображения картинок в IoBroker необходимо включить Удаленное управление по HTTP.

В Kodi v17.0 “Krypton” эти настройки находятся на одном экране:

 

Настройка драйвера

Окно настроек драйвера:

IP адрес KODI: IP Kodi в вашей сети

Порт jsonrpc: порт для JSON-RPC API (по-умолчанию kodi использует порт 9090)

Port Webserver KODI: порт подключения к веб серверу Kodi

Логин: логин для подключения к веб серверу Kodi

Пароль: пароль для подключения к веб серверу Kodi

После нажатия кнопки сохранить, драйвер перезапускается с новыми параметрами и если драйвер настроен верно и установлено соединение с Kodi, то индикатор состояния (значок) слева от названия инстанции драйвера (kodi.0) будет зеленый. Если он желтый (kodi.1) то это означает, что драйвер запущен, но не установлено соединение с Kodi.

Использование

Объект Назначение Описание
youtube Для открытия видео с сайта youtube. При записи в этот объект ссылки на видео с сайта youtube, kodi останавливает текущее воспроизведение, и запускает на воспроизведение видео по ссылке:

Так же можно открывать плейлисты youtube видео:

Можно так же передавать не полную ссылку, а только код видео:

или плейлиста:
 ShowNotif  Отображение всплывающего сообщения на экране Kodi  Формат сообщения:

Полный формат:

где 1 – это image (стандартная иконка), 15000 – displaytime (время отображения в миллисекундах).

где 2 – это image, 10000 – displaytime .

Формат – Заголовок, текст, без картинки. Время отображения 5000 миллисекунд:

Формат – простой текст, без заголовков и картинок:

image:

Стандартная иконка для отображения уровня сообщения:

  • ‘info’ – 0 (default),
  • ‘warning’ – 1,
  • ‘error’ – 2.

displaytime: Время отображения сообщения в милисекундах, минимум 1500 макс 30000 мс.

Так же сообщения можно отправлять из драйвера javascript:

Важно: Если используется заголовок сообщения, то он должен всегда находится перед самим текстом сообщения (Внимание;Протечка воды), расположение остальных параметров не критично. 

SwitchPVR Переключение PVR IPTV каналов по названию канала в плейлисте. При записи значения в объект, драйвер ищет в плейлисте (объект pvr.playlist_tv) совпадения и если находит то включает найденный канал из плейлиста. Поиск регистронезависимый и ищет все вхождения в строке названия канала.

Например: ТВ канал – Discovery Science найдет как по полному наименованию так и по discover, но если при поиске по ключевой фразе discover первым в списке окажется канал Discovery HD, то включится именно он.

 Open  Начинает воспроизведение файла по указанной ссылке Ссылка может быть как на локальный файл (путь до файла), так и URL на файл или поток в сети интернет.
Position  Текущая позиция в плейлисте  В этот объект можно записать необходимый номер позиции(трека) текущего плейлиста и Kodi тут же перейдет к воспроизведению этого трека.
Speed  Скорость воспроизведения  Фиксированные значения -32, -16, -8, -4, -2, -1, 0, 1, 2, 4, 8, 16, 32, а также increment и decrement
Directory  Содержимое каталога  Сюда записывается путь до папки или диска, в ответ в этот статус записывается JSON объект со списком каталогов и файлов указанной папки или диска. Используется для навигации по каталогу. Пример реализации можно посмотреть в VIS виджете winamp browser из группы виджетов ioBroker.vis-players
ActivateWindow  Активизирует в проигрывателе окно. Список названий вызываемых окон:

“home”, “programs”, “pictures”, “filemanager”, “files”, “settings”, “music”, “video”, “videos”, “tv”, “pvr”, “pvrguideinfo”, “pvrrecordinginfo”, “pvrtimersetting”, “pvrgroupmanager”, “pvrchannelmanager”, “pvrchannelmanager”, “pvrguidesearch”, “pvrchannelscan”, “pvrupdateprogress”, “pvrosdchannels”, “pvrosdguide”, “pvrosddirector”, “pvrosdcutter”, “pvrosdteletext”, “systeminfo”, “testpattern”, “screencalibration”, “guicalibration”, “picturessettings”, “programssettings”, “weathersettings”, “musicsettings”, “systemsettings”, “videossettings”, “networksettings”, “servicesettings”, “appearancesettings”, “pvrsettings”, “tvsettings”, “scripts”, “videofiles”, “videolibrary”, “videoplaylist”, “loginscreen”, “profiles”, “skinsettings”, “addonbrowser”, “yesnodialog”, “progressdialog”, “virtualkeyboard”, “volumebar”, “submenu”, “favourites”, “contextmenu”, “infodialog”, “numericinput”, “gamepadinput”, “shutdownmenu”, “mutebug”, “playercontrols”, “seekbar”, “musicosd”, “addonsettings”, “visualisationsettings”, “visualisationpresetlist”, “osdvideosettings”, “osdaudiosettings”, “videobookmarks”, “filebrowser”, “networksetup”, “mediasource”, “profilesettings”, “locksettings”, “contentsettings”, “songinformation”, “smartplaylisteditor”, “smartplaylistrule”, “busydialog”, “pictureinfo”, “accesspoints”, “fullscreeninfo”, “karaokeselector”, “karaokelargeselector”, “sliderdialog”, “addoninformation”, “musicplaylist”, “musicfiles”, “musiclibrary”, “musicplaylisteditor”, “teletext”, “selectdialog”, “musicinformation”, “okdialog”, “movieinformation”, “textviewer”, “fullscreenvideo”, “fullscreenlivetv”, “visualisation”, “slideshow”, “filestackingdialog”, “karaoke”, “weather”, “screensaver”, “videoosd”, “videomenu”, “videotimeseek”, “musicoverlay”, “videooverlay”, “startwindow”, “startup”, “peripherals”, “peripheralsettings”, “extendedprogressdialog”, “mediafilter”.

ExecuteAction Выполняет указанную команду Можно выполнить одно из следующих действий:

“left”, “right”, “up”, “down”, “pageup”, “pagedown”, “select”, “highlight”, “parentdir”, “parentfolder”, “back”, “previousmenu”, “info”, “pause”, “stop”, “skipnext”, “skipprevious”, “fullscreen”, “aspectratio”, “stepforward”, “stepback”, “bigstepforward”, “bigstepback”, “osd”, “showsubtitles”, “nextsubtitle”, “codecinfo”, “nextpicture”, “previouspicture”, “zoomout”, “zoomin”, “playlist”, “queue”, “zoomnormal”, “zoomlevel1”, “zoomlevel2”, “zoomlevel3”, “zoomlevel4”, “zoomlevel5”, “zoomlevel6”, “zoomlevel7”, “zoomlevel8”, “zoomlevel9”, “nextcalibration”, “resetcalibration”, “analogmove”, “rotate”, “rotateccw”, “close”, “subtitledelayminus”, “subtitledelay”, “subtitledelayplus”, “audiodelayminus”, “audiodelay”, “audiodelayplus”, “subtitleshiftup”, “subtitleshiftdown”, “subtitlealign”, “audionextlanguage”, “verticalshiftup”, “verticalshiftdown”, “nextresolution”, “audiotoggledigital”, “number0”, “number1”, “number2”, “number3”, “number4”, “number5”, “number6”, “number7”, “number8”, “number9”, “osdleft”, “osdright”, “osdup”, “osddown”, “osdselect”, “osdvalueplus”, “osdvalueminus”, “smallstepback”, “fastforward”, “rewind”, “play”, “playpause”, “delete”, “copy”, “move”, “mplayerosd”, “hidesubmenu”, “screenshot”, “rename”, “togglewatched”, “scanitem”, “reloadkeymaps”, “volumeup”, “volumedown”, “mute”, “backspace”, “scrollup”, “scrolldown”, “analogfastforward”, “analogrewind”, “moveitemup”, “moveitemdown”, “contextmenu”, “shift”, “symbols”, “cursorleft”, “cursorright”, “showtime”, “analogseekforward”, “analogseekback”, “showpreset”, “presetlist”, “nextpreset”, “previouspreset”, “lockpreset”, “randompreset”, “increasevisrating”, “decreasevisrating”, “showvideomenu”, “enter”, “increaserating”, “decreaserating”, “togglefullscreen”, “nextscene”, “previousscene”, “nextletter”, “prevletter”, “jumpsms2”, “jumpsms3”, “jumpsms4”, “jumpsms5”, “jumpsms6”, “jumpsms7”, “jumpsms8”, “jumpsms9”, “filter”, “filterclear”, “filtersms2”, “filtersms3”, “filtersms4”, “filtersms5”, “filtersms6”, “filtersms7”, “filtersms8”, “filtersms9”, “firstpage”, “lastpage”, “guiprofile”, “red”, “green”, “yellow”, “blue”, “increasepar”, “decreasepar”, “volampup”, “volampdown”, “channelup”, “channeldown”, “previouschannelgroup”, “nextchannelgroup”, “leftclick”, “rightclick”, “middleclick”, “doubleclick”, “wheelup”, “wheeldown”, “mousedrag”, “mousemove”, “noop”.

CleanAudioLibrary Очистка аудио библиотеки  При записи значения происходит очистка аудио библиотеки
CleanVideoLibrary Очистка видео библиотеки При записи значения происходит очистка видео библиотеки
 ScanAudioLibrary  Сканирование аудио библиотеки При записи значения начинается сканирование и обновление аудио библиотеки
 ScanVideoLibrary  Сканирование видео библиотеки  При записи значения начинается сканирование и обновление видео библиотеки
 add  Добавляет в текущий плейлист файлы из папок  Записываемое значение представляет собой путь до папки или файла. При добавлении папки в плейлист добавятся все файлы включая вложенные папки.
clear Очистить текущий плейлист  Очищает текущий плейлист.
 Input.*  Навигация по GUI
  • Back – возврат на предыдущий экран в меню
  • ContextMenu – вызывает контекстное меню (аналогично нажатию правой клавиши мыши)
  • Down – навигация вниз
  • ExecuteAction – аналогично оьбъекту ExecuteAction
  • Home – На главный экран
  • Info – вызывает окно информации
  • Left – навигация влево
  • Right -навигация вправо
  • Select – выбор/подтверждение действия
  • SendText – отправляет текст, например в окно поиска. (unicode)
  • ShowCodec – отображает кодек воспроизводимого файла
  • ShowOSD – отображает OSD
  • Up – навигация вверх

 

Таблица стандартных ролей для медиапроигрывателей и соответствующих им объектов:

Роль common.type Комментарий Объект Kodi
button.stop boolean only write stop
button.play boolean only write play
button.next boolean only write next
button.prev boolean only write previous
button.pause boolean only write pause
level.volume number [0-100] volume
media.seek number % seek
media.mode.shuffle boolean read/write shuffle
media.mode.repeat boolean read/write repeat
media.state string / boolean [play,stop,pause] or [true/false] state
media.artist string info.artist
media.album string info.album
media.title info.title
media.cover string  (URL) info.thumbnail
media.duration.text string (optional) e.g “2:35” playing_time_total
media.elapsed.text string (optional) e.g “1:30” playing_time
media.mute boolean read/write mute
media.bitrate number kbps bitrate
media.genre string genre song info.genre
media.track number current play track id [0 – ~] position
media.playid number play track id playid
media.add string (path) add current playlist add
media.clear boolean clear current playlist clear
media.playlist string playlist
media.browser string Directory