LazyCat Software

Android apps for clever and lazy...

Структура wizard для LazyIPTV

Начиная с версии 2.17, в LazyIPTV поддерживается система Wizards - средство для импорта плейлистов и источников ТВ-программы. Открытость и простота формата обеспечивает конечным пользователям и провайдерам возможность организовывать обновляемые источники плейлистов и EPG.

Ниже будет описана структура wizard-файлов.

Будем считать, что wizard - это обычный xml-файл (в открытом или архивированном zip/gz виде), имеющий расширение *.liwizard. Важно отметить, что приложение LazyIPTV само определяет в каком формате wizard-файл - в открытом виде(текст xml), архивный в формате gz или архивный в формате zip. Для автоопределения в приложении важно чтобы расширение файла было *.liwizard.

Рассмотрим основные xml-теги, применяемые при описании wizard. Основная структура файла состоит 3 базовых секций:
<info> (информация о wizard),
<playlists> (список плейлистов, каждый из которых "завернут" в тэг <playlist>)
<epgs> (список источников EPG, каждый из которых "завернут" в тэг <epg>).

Эти 3 секции "заворачиваются в корневой тег <wizard>.

Далее приведена общая структура wizard-файла:

<?xml version="1.0" encoding="utf-8"?>
<wizard>
<info>
<version> версия приложения в свободном формате </version>
<name> наименование wizard </name>
<comment> информация-комментарий к wizard-файлу </comment>
</info>

<playlists>
<playlist>
<name> наименование плейлиста </name>
<comment> комментарий к плейлисту </comment>
<date> дата добавления в wizard в свободном формате </date>
<url> ссылка на плейлист </url>
<update_hours> целое число, время через которое обновлять плейлист </update_hours>
<source> текст плейлиста в формате base64 </source>
<radio> true если радиоплейлист </radio>
<group> группы, разделенные запятой </group>
</playlist>

<playlist> ... </playlist>
... ... ...
<playlist> ... </playlist>

</playlists>

<epgs>
<epg>
<name> наименование источника EPG </name>
<comment> комментарий </comment>
<date> дата добавления в wizard в свободном формате </date>
<url> ссылка на EPG в формате xmltv </url>
<group> группы, разделенные запятой </group>
<shift> число, смещение тв-программы в часах </shift>
</epg>

<epg> ... </epg
... ... ...
<epg> ... <epg/>

</epgs>

</wizard>

Секции <info> и <epg> прозрачны и надеюсь не требуют дополнительного описания.

А вот с тэгом <playlist> есть нюансы, поэтому сделаем более подробное описание :
<name> - наименование плейлиста в свободном формате;
<comment> - комментарий к плейлисту, старайтесь не писать слишком большие комментарии;
<date> - дата добавления плейлиста в wizard в свободном формате;
<radio> - признак радиоплейлиста, если хотите указать что плейлист содержит радиоканалы, укачите значение true. Тэг может быть опущен (в этом случае, по умолчанию - false);
<group> - наименования групп, разделенные запятой, по которым можно будет фильтровать wizard. Тэг может быть опущен;

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

1. если плейлист доступен по ссылке, необходимо указать:
<url> - ссылка на плейлист, для ссылок содержащих спец. символы &%? следует использовать стандартный для формата xml модификатор CDATA, например:
<url><![CDATA[http://iptv.gen12.net/bugtracker/file_download.php?file_id=807&type=bug]]></url>
<update_hours> - целое число, время в часах, через которое необходимо обновлять плейлист. Тэг может быть опущен (в этом случае, по умолчанию плейлист не обновляемый). Если указать значение 0, то плейлист в приложении будет обновляться при каждой загрузке;

2. если необходимо "зашить" статический плейлист в wizard (собственно текст m3u файла), то используется следующий тэг:
<source> - текст плейлиста в формате base64, для этого потребуется перекодировать содержимое плейлиста (текст из m3u-файла) в формат base64, используя любой онлайновый сервис вроде такого: http://base64.ru/
В итоге, должно получиться нечто вроде: <source>I0VYVE0zVQojRVhUSU5GOi0...xLFN0a</source>

Количество тэгов <playlist> и <epg> не ограничено.
Итоговый файл может распространяться как в исходном виде, так и быть заархивирован в формате GZ,GZIP или ZIP. Для того чтобы приложение LazyIPTV увидело wizard-файл, его расширение должно быть .liwizard (независимо от применения архивации).

Перед созданием своего wizard-файлм рекомендует изучить базовый wizard от LazyCat Software: http://bit.ly/liwizard

И последнее. Если вы распространяете свой wizard по ссылке, то достаточно просто обновить файл, а приложение LazyIPTV автоматически проверит ссылку на предмет изменения, дергая не весь файл, а только дату модификации через head-запрос (траффик минимальный) и уведомит конечных пользователей, использующих ваш wizard, о том что его необходимо обновить.

Atom

Работает на Nibbleblog