Зачем IPTV нужен EPG
Электронная программа передач — ключевой элемент пользовательского опыта в IPTV. Без EPG зритель видит только номер канала и не понимает что сейчас идёт.
Навигация
Поиск интересных передач по жанрам и времени
Информирование
Описания, актёры, рейтинги
Функционал
Напоминания, таймеры записи, catch-up
Рекомендации
Персонализация на основе метаданных
Источники EPG данных
Вариант 1: Собирать самостоятельно
Договариваться с каждым телеканалом, получать данные в разных форматах, нормализовать.
- • Команда редакторов для обработки данных
- • Разработка парсеров для каждого формата
- • Договоры с каждым вещателем
- • 6-12 месяцев на запуск
Вариант 2: EPG агрегатор (рекомендуется)
Подключиться к готовому сервису через API. EPG Service предоставляет:
- ✓ 4308 каналов в едином формате
- ✓ Real-time обновления
- ✓ Метаданные: жанры, актёры, постеры
- ✓ Запуск за 2 недели
Форматы для IPTV
XMLTV — классический формат
Поддерживается большинством IPTV middleware: Ministra (Stalker), Xtream Codes, MyTV Online и другими.
<?xml version="1.0" encoding="UTF-8"?>
<tv>
<channel id="perviy">
<display-name>Первый канал</display-name>
<icon src="https://example.com/logo.png"/>
</channel>
<programme start="20260206180000 +0300" stop="20260206183000 +0300" channel="perviy">
<title>Время</title>
<desc>Информационная программа</desc>
<category>Новости</category>
<icon src="https://example.com/poster.jpg"/>
</programme>
</tv> JSON API — современный подход
Для кастомных приложений и современных middleware рекомендуется REST API с JSON:
// Запрос расписания через EPG Service API
const response = await fetch(
'https://api.epgservice.ru/v1/schedules?channel_id=perviy&date=2026-02-06',
{ headers: { 'Authorization': 'Bearer API_KEY' } }
);
const data = await response.json();
// { channel: {...}, events: [...] } Пошаговая интеграция
Получите доступ к данным
Напишите в Telegram бот {contacts.telegram.botUsername} и получите API ключ за 1 минуту. Бесплатный тариф для разработки.
Сопоставьте каналы
Свяжите ID каналов в вашей системе с ID каналов в EPG. Обычно достаточно сопоставления по tvg-id в m3u плейлистах.
Настройте импорт
Укажите URL для XMLTV в middleware или реализуйте получение данных через JSON API.
Проверьте отображение
Убедитесь что расписание отображается, время правильное, описания и постеры загружаются.
Пример маппинга каналов:
{
"your_channel_id": "ch001",
"epg_channel_id": "perviy",
"name": "Первый канал"
} Частые проблемы и решения
Проблема: EPG не отображается
Причина: Не совпадают ID каналов в EPG и плейлисте.
Решение: Проверьте tvg-id в m3u и channel id в XMLTV.
Проблема: Неправильное время
Причина: Неверный часовой пояс в данных или на устройстве.
Решение: EPG Service отдаёт время в UTC+3 (Москва). Проверьте настройки timezone в middleware.
Проблема: Нет постеров
Причина: Middleware не обрабатывает тег <icon> в XMLTV.
Решение: Используйте JSON API или обновите middleware.
Лучшие практики
Нужна помощь с интеграцией?
Команда EPG Service поможет настроить интеграцию бесплатно. Получите консультацию и тестовый доступ к API.
Связаться с командой