Как написать видео плагин для Kodi

Kate

Administrator
Команда форума

1. Введение​


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

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


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

3. Установка​


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

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

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


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

vqgjcniomeafc30cnb7vtwf08ks.jpeg


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


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

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

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

6. Структура​


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

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

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

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

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


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

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

jmkvsqkzkadb8i21qqbdy2txgzg.jpeg


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

qhplafedbywhqjoq3dpot7hvnwg.jpeg


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

i5bejvwq2finra2rkyn8qrivbfa.jpeg


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

lyvhcs6amauh_wpok1gvsywcira.jpeg


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

zh6td8qdeinyvcl8cezdwihwov8.jpeg


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

wvovh8xmdffrrds_nzaozjlgpn8.jpeg


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

_gmen-hhqc4bvxyhdwxcpz5nva4.jpeg


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

n1qnothkzefwlkj7dhuv0zqh-84.jpeg


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

cvy4fpd7bivjg_ygqo5sqfsrb-w.jpeg


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

15ca7y-gxlvjb5ngfgbmnzxqmey.jpeg


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


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

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

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

mec71zvnszfaqlyosh6dm0lnye8.jpeg


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

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

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

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


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

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

codedocs.xyz/xbmc/xbmc

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

codedocs.xyz/xbmc/xbmc/group__python__xbmcgui__listitem.html#gac31a08def90f50295146753353cb9541

Сами по себе вы мало что сделаете, полагаясь на стриминговую платформу, которая вам и передаст данные для вывода в 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. Не спрашивайте почему. Просто запомните это.


Источник статьи: https://habr.com/ru/post/556102/
 
Сверху