1. Введение


Узнайте, как написать ваше первое видео расширение для Kodi/XBMC из этого урока!

2. Инструменты


Если вы делали урок про то, как написать скрипт HelloWorld, то у вас уже, наверное, установлен текстовый редактор, который нам понадобится и в этом уроке. Может быть, стоит установить еще и видео плеер, раз мы теперь имеем дело с видео. Вдобавок к Kodi установите vlc, такой же замечательный и открытый.

— VLC www.videolan.org/vlc

3. Установка


В этом уроке нам понадобятся два достаточно простых видео плагина. Найдите их в git-репозитории.

Можете загрузить себе на компьютер оба zip-файла и установить видеодополнения из zip-файла внутри интерфейса Kodi. Также можете распаковать их в папку userdata/addons.

4. Первый запуск


Выполните команду Система >> Дополнения >> Мои дополнения >> Видео дополнения >> Example Kodi video Plugin и вы увидите несколько тестовых видео с некоего интернет-сервера.



5. Что это было


Видео плагин сделал свое дело. Как?

По существу он проверяет веб-сайт на наличие размещенных видео. В этом примере мы напрямую ссылаемся на видео, а могли бы искать и вычищать контент из нашего онлайн-источника.

Отправив видеогиперссылку в Kodi, мы передаем управление нашему видеоплееру, который буферизует видео и затем воспроизводит его так же, как из любого другого источника.

6. Структура


main.py — вот она, ваша программа на Python.

addon.xml — а это ее описание в формате xml.

icon.png — значок для вашего плагина. Нарисуйте его в квадрате величиной 256 или 512 пикселей, сделайте это красиво.

Readme.md — прочтите это на странице используемого в этом уроке видеодополнения на GitHub, чтобы знать, что и как в общем оно делает, а также откуда его можно скачать.

7. Текст программы


Скоро вы увидите текст видеодополнения. Код на Python, который составляет большую его часть, хранимый в простом текстовом файле.

Дадим Kodi понять, что нам нужно.



Сделаем еще кое-что…



Чтобы не заморачиваться с парсингом или API ради ссылок на видеофайлы/потоки с какого-либо веб-сайта или онлайн-ресурса, как это делается в «настоящих» расширениях Kodi (потому что совсем не за тем был написан этот плагин), берем фиксированный набор свойств.



А теперь объявим это…



Сообщим Kodi еще кое о чем…



Без списка категорий никуда.



Расскажем Kodi, как мы перечислим наши видео…



… и где они находятся.



Добавим маршрутизацию в наш плагин…



… и передадим это Kodi.



8. Изменим код!


Умея запускать ваше расширение, понимая его структуру и зная, что оно делает, изменим его!

Откройте папку с вашим видео плагином, исправьте код. Будьте готовы запустить его с помощью Kodi, когда сделаете это. Для этого переключитесь между текстовым редактором и Kodi.

Откройте main.py из вашей папки userdata и как следует его исправьте.



Не стесняйтесь сделать ссылки на другие файлы в формате jpeg или другие онлайн-видео. Создайте новый жанр и посмотрите, что после этого будет в Kodi.

Сохраните файл с помощью вашего текстового редактора и запустите видеодополнение из Kodi. Обратите внимание, как изменились видео в видеодополнении и его структура.

Поздравляем с тем, что ваше видеорасширение теперь воспроизводит новые видео из интернета!

9. Потоковое видео


Как опытный программист, я вам сейчас расскажу кое-что про «настоящие» видеодополнения.

Во-первых, я бы им не стал без документации на codedocs.xyz, которая поможет и вам не хуже какой-нибудь вики-энциклопедии.

codedocs.xyz/xbmc/xbmc

Кстати о документации. Руководство по ListItem будет вам все время помогать, если вы свяжетесь с потоковым видео.

Сами по себе вы мало что сделаете, полагаясь на стриминговую платформу, которая вам и передаст данные для вывода в Kodi элементов с URL-адресами видео. Когда вашим видео понадобится DRM, полагайтесь на InputStream.Adaptive.

Смотря какие у вас данные, можете соответствующим образом использовать ваш модуль запросов. В Kodi заявлена полная его поддержка, включая файлы куки и сеансы. В двух словах, с ним вы будете

  • получать необходимую информацию из интернета (пусть для начала это будут заголовки и url-адреса);
  • создавать элементы, которые Kodi будет рассматривать как источники видео (см. об этом xbmcplugin.addDirectoryItem() and xbmcgui.ListItem()).

Знакомство с написанием плагинов для работы с потоковым видео будет неполным без чтения исходников этих самых расширений, таких как AsciiDisco для Nexflix или Sandmann79 для Amazon/AmazonVOD.

Хотите прочитать об этом больше? Идите на ветку форума.

10. Заключительные соображения


На самом деле, написание видеодополнений — дело довольно простое, как только вы получите хорошую базовую структуру. Можете парсить с помощью Regex многие онлайн-источники, либо размещать там свои собственные видео. С помощью простых в использовании дополнительных модулей у вас в Kodi появятся видеоклипы с youtube или vevo-видео.

Не стесняйтесь обсуждать этот урок на ветке форума, если у вас есть какие-либо вопросы.

11. Кое-что еще


Никогда не вводите табуляцию вместо пробелов в Python. Не спрашивайте почему. Просто запомните это.