XMLTV format

    Формат телепрограммы THE xmltv основан на языке структурированных данных XML и широко используется в IP-телевидении благодаря своей простоте и доступности для понимания.

    Типы XMLTV

    IPTV может использовать несжатые файлы, такие как xmltv.xml - обычно имеют расширение .xml и сжатые, например xmltv.xml.gz - это файл xmltv. Xml, упакованный архиватором gzip. Второй вариант используется для экономии свободного места на медиаустройстве и увеличения скорости загрузки, особенно это актуально, если файл программы содержит большой объем данных.

    Пример XMLTV

    Типичный файл программы XMLTV - это файл с XML-содержимым, в котором описаны каналы и расписание.
    Пример файла XMLTV:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE tv SYSTEM "xmltv.dtd">
    <tv generator-info-name="Some tv generator">
    <channel id="1">
        <display-name lang="en">Channel 1</display-name>
        <icon src="http://site.domain/1.png"/>
      </channel>
    <channel id="2">
        <display-name lang="en">Channel 2</display-name>
        <icon src="http://site.domain/2.png"/>
      </channel>
    <programme start="20180920140000 +0300" stop="20180920141500 +0300" channel="1">
        <title lang="en">Program title 1</title>
        <desc lang="en">Program description 1</title>
        <date>Program release date 1</date>
        <category lang="en">Category 1</category>
        <category lang="en">Category 2</category>
      </programme>
    <programme start="20180920150000 +0300" stop="20180920141600 +0300" channel="1">
        <title lang="en">Program title 2</title>
        <desc lang="en">Program description 2</title>
        <date>Program release date 2</date>
        <category lang="en">Category 1</category>
      </programme>
    
    <programme start="20180920143000 +0300" stop="20180920141500 +0300" channel="2">
        <title lang="en">Program title 3</title>
        <desc lang="en">Program description 3</title>
        <date>Program release date 3</date>
        <category lang="en">Category 1</category>
        <category lang="en"> Category 2</category>
      </programme>
    </tv>
    Описание файла:

    <?xml version="1.0" encoding="UTF-8"?>- заголовок, указывающий, что файл содержит разметку XML
    <!DOCTYPE tv SYSTEM "xmltv.dtd">- заголовок, указывающий, что будет использоваться шаблон xmltv - xmltv.dtd
    <tv generator-info-name="Some tv generator">- между тегами, содержащими все данные о программе, имя-информации-генератора указывает имя генератора, создавшего этот XML-файл - ( необязательный параметр.)

    Описание канала
    <channel id="1">
        <display-name lang="en">Channel 1</display-name>
        <icon src="http://site.domain/1.png"/>
      </channel>

    Id=”1” - уникальный идентификатор канала. Он может быть как числовым, так и текстовым.
    display-name- название канала, атрибут lang указывает язык, на котором указано название канала.
    lang - необязательный параметр.
    icon- указывает ссылку на логотип канала, ссылка на логотип должна быть указана в атрибуте src

    Описание тв-программы:

    После того, как указаны все каналы, которые присутствуют в файле, необходимо описать ТВ программу для каналов:

    <programme start="20180920143000 +0300" stop="20180920141500 +0300" channel="2">
        <title lang="en">Program title 3</title>
        <desc lang="en">Program description 3</title>
        <date>Program release date 3</date>
        <category lang="en">Category 1</category>
        <category lang="en">Category 2</category>
      </programme>

    programme- между этими тегами находится информация о телешоу. Имеет ряд обязательных атрибутов:
    start- указывает время начала телепрограммы в формате YYYYMMDDHHMMSS (TZ):
    YYYY- год
    MM- месяц
    DD- день
    HH- час
    MM- минуты
    SS- секунды
    TZ- часовой пояс, например +0300, необязательно
    stop- указывает конец время передачи в формате YYYYMMDDHHMMSS (TZ), (необязательно)
    channel- уникальный идентификатор канала, указанный выше. Указывает, к какому каналу принадлежит передача.
    title- название перевода. Атрибут lang указывает необязательный язык.
    desc- описание перевода не обязательно. Атрибут lang указывает необязательный язык.
    date- дата трансляции, может отличаться от даты трансляции - необязательный параметр.
    category- название категории, к которой принадлежит телепередача, является необязательным параметром. Для одной передачи может быть несколько категорий - жанров.
    Атрибут lang указывает язык. (необязательный)