Формат телепрограммы 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
указывает язык. (необязательный)