Интеграция 25 января 2026 12 мин чтения

EPG для IPTV: руководство по интеграции

Пошаговое руководство по добавлению электронной программы передач в вашу IPTV систему. От выбора источника до отладки отображения.

Зачем 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 (XMLTV)
<?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:

JavaScript
// Запрос расписания через 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: [...] }

Пошаговая интеграция

1

Получите доступ к данным

Напишите в Telegram бот {contacts.telegram.botUsername} и получите API ключ за 1 минуту. Бесплатный тариф для разработки.

2

Сопоставьте каналы

Свяжите ID каналов в вашей системе с ID каналов в EPG. Обычно достаточно сопоставления по tvg-id в m3u плейлистах.

3

Настройте импорт

Укажите URL для XMLTV в middleware или реализуйте получение данных через JSON API.

4

Проверьте отображение

Убедитесь что расписание отображается, время правильное, описания и постеры загружаются.

Пример маппинга каналов:

JSON
{
  "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 при каждом переключении канала
📅 Загружайте заранее — получайте расписание на 2-3 дня вперёд
🛡️ Обрабатывайте ошибки — если EPG недоступен, показывайте последние данные
🔔 Используйте webhooks — для мгновенных обновлений без polling
📊 Мониторьте качество — отслеживайте пропуски и несоответствия

Нужна помощь с интеграцией?

Команда EPG Service поможет настроить интеграцию бесплатно. Получите консультацию и тестовый доступ к API.

Связаться с командой