Перейти к содержанию

Локальный EPG сервер

Инструкция устарела и требует обновления

Это базовая инструкция, которая описывает самый простой процесс запуска локального EPG сервера.

Я не консультирую по вопросам "Хочу свой сервер EPG, но ничего не понимаю". Вся информация, и помощь которую я могу предоставить, описана тут.

Теория

Для полностью независимого EPG потребуется: * ott-play-epg-converter * ottplay-foss-server-epg * устройство, где эти 2 компонента будут работать * возможность изменить заголовок плейлиста

Эта цепочка довольно просто связывается в систему: * ott-play-epg-converter подготавливает файлы тв программы для плеера * потом, ottplay-foss-server-epg собирает позволяет искать каналы по этим файлам, и предоставляет к ним доступ * а изменения в плейлиста позволяют плееру понять, что надо использовать другой сервер для поиска телепрограммы

Практика

Самым понятным способом как это настроить будет практический пример. Для примера мы будем запускать свой сервер EPG для 2 источников: it999 и iptvx.one.

⚠️ В примере используется ip адрес 192.168.1.10 в Вашем случае это должен быть адрес устройства, на котором запускается сервер.

Подготовка файлов

Создаем каталог, например my-ottfoss-epg, скачиваем и распаковываем в него последние релизы ott-play-epg-converter и ottplay-foss-server-epg для своей платформы. Дальше все манипуляции будут в этом каталоге.
В этом примере я дополнительно переименовал файлы в ofoss-epg-conv.exe и ofoss-epg-serv.exe

Настройка ott-play-epg-converter

Теперь надо настроить converter на источники EPG, для этого необходимо знать адрес их расположения и, желательно альтернативные ссылки на эти EPG.
Для it999 основная ссылка http://epg.it999.ru/epg.xml.gz, однако есть альтернативные, например http://epg.it999.ru/epg2.xml.gz, http://epg.it999.ru/epg.xml итд, альтернативные ссылки нужны для того чтобы сервер мог определять этого поставщика по заголовку в в плейлисте.
Аналогично для iptvx.one, основная https://iptvx.one/EPG альтернативные https://iptvx.site/epg.xml.gz, https://iptvx.one/epg/epg.xml.gz

Создадим конфиг-файл например с именем conv.json и запишем в него параметры исходя из информации выше:

[
  {"id":"it999", "urls": ["http://epg.it999.ru/epg.xml.gz", "http://epg.it999.ru/epg2.xml.gz", "http://epg.it999.ru/epg.xml"]},
  {"id":"iptvx.one", "urls": ["https://iptvx.one/EPG", "https://iptvx.site/epg.xml.gz", "https://iptvx.one/epg/epg.xml.gz"]}
]

Также необходимо создать каталог html, в который будут записаны файлы телепрограммы.
ℹ️ Кстати в каталог html можно положить свой плейлист, и забирать его от туда по ссылке http://192.168.1.10:3001/html/my-super-list.m3u

Для удобного запуска создадим run_conv.bat (windows):

@echo off
cd /d "%~dp0html"
..\ofoss-epg-conv.exe -c "..\conv.json"

Настройка ottplay-foss-server-epg

Теперь надо настроить сервер, на использование EPG после конвертора. Сервер может выступать в качестве веб сервера, поэтому в этом случае мы и создавали дополнительно каталог html, epg-converter будет складывать результат своей работы.
Также по умолчанию сервер запускается в режиме localhost, поэтому в примере будет определен параметр bind который "включит" сервер на всю сеть.

Конфиг файл должен называться config.json и для 2 источников из примера будет выглядеть так:

{
  "bind":":3001",
  "providers": [
    {"id": "it999", "base_url": "http://192.168.1.10:3001/html/it999/"},
    {"id": "iptvx.one", "base_url": "http://192.168.1.10:3001/html/iptvx.one/"}
  ]
}

Запуск

Перед запуском сервера, необходимы первоначальные данные по именам каналов, которые создаст конвертер, поэтому запускаем сначала run_conv.bat, а как он закончит (в каталоге html должны появиться файлы), можно запускать и сам сервер ofoss-epg-serv.exe

В консоли должны появиться строчки вида:

2022-06-14T17:38:05 INF it999 updated, names=1826, epg=1827 outdated=54, icon=1790
2022-06-14T17:38:05 INF iptvx.one updated, names=1792, epg=1793 outdated=14, icon=1732
В дальнейшем сервер каждые 6 часов будет обновлять список каналов, только список, сама телепрограмма актуализируется повторным запуском run_conv.bat, 1 раза в день более чем достаточно.
Сервер запущен и работает, самое время переключить на него плеер.

Настройка плеера

Для того, чтобы переключить плеер на использование локального сервера epg необходимо в заголовке указать параметр foss-tvg="!epg-server::http://192.168.1.10:3001" или еще с иконками foss-tvg="!epg-server::http://192.168.1.10:3001,!ico-server::http://192.168.1.10:3001"

Вот плейлист до модификаций

#EXTM3U x-tvg-url="http://epg.it999.ru/epg.xml.gz"

#EXTINF:0 group-title="новости" tvg-id="2264" tvg-logo="http://epg.it999.ru/img/2264.png" tvg-rec="0",Инфоканал
http://localhost/iptv/00000000000000/407/index.m3u8
#EXTINF:0 group-title="новости" tvg-id="743" tvg-logo="http://epg.it999.ru/img/743.png" tvg-rec="7",РБК-ТВ
http://localhost/iptv/00000000000000/106/index.m3u8
#EXTINF:0 group-title="новости" tvg-id="2980" tvg-logo="http://epg.it999.ru/img/2980.png" tvg-rec="0",FOX News Extra AU
http://localhost/iptv/00000000000000/6116/index.m3u8
#EXTINF:0 group-title="новости" tvg-id="427" tvg-logo="http://epg.it999.ru/img/427.png" tvg-rec="7",Пятый канал
http://localhost/iptv/00000000000000/112/index.m3u8

а вот после

#EXTM3U x-tvg-url="http://epg.it999.ru/epg.xml.gz" foss-tvg="!epg-server::http://192.168.1.10:3001,!ico-server::http://192.168.1.10:3001"

#EXTINF:0 group-title="новости" tvg-id="2264" tvg-logo="http://epg.it999.ru/img/2264.png" tvg-rec="0",Инфоканал
http://localhost/iptv/00000000000000/407/index.m3u8
#EXTINF:0 group-title="новости" tvg-id="743" tvg-logo="http://epg.it999.ru/img/743.png" tvg-rec="7",РБК-ТВ
http://localhost/iptv/00000000000000/106/index.m3u8
#EXTINF:0 group-title="новости" tvg-id="2980" tvg-logo="http://epg.it999.ru/img/2980.png" tvg-rec="0",FOX News Extra AU
http://localhost/iptv/00000000000000/6116/index.m3u8
#EXTINF:0 group-title="новости" tvg-id="427" tvg-logo="http://epg.it999.ru/img/427.png" tvg-rec="7",Пятый канал
http://localhost/iptv/00000000000000/112/index.m3u8

Поздравляю!
Теперь плеер, по такому плейлисту, за EPG будет обращаться к локальному серверу по адресу 192.168.1.10:3001