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

EPG в плеере

В основном автоматическое, и работает в 2 режимах:

Полный
источник XMLTV поддерживается плеером, в таком случае серверная часть пытается максимально точно подобрать значки и программу к каналам. Для каналов, по которым этого сделать не удалось, работает автопоиск EPG, согласно приоритетам, на сервере.
Стандартный
источник XMLTV не поддерживается плеером, в таком случае сразу работает автопоиск EPG, согласно приоритетам, на сервере

Терминология

В статье используются термины, значение которых Вы должны знать, вот их список с пояснениями:

  • IPTV поставщик ip телевидения.
  • M3U/M3U8 это плейлист, ссылку на который Вы вбиваете в плеер
  • EPG-FOSS формат программы, совместимый с этим плеером, легко создается из XMLTV этим инструментом
  • Заголовок плейлиста/#EXTM3U первая строка в плейлисте, в ней как правило могут содержаться глобальные установки листа, стандарта толком нет
    • url-tvg параметр плейлиста, относящийся к секции #EXTM3U, в нем прописываются источники телепрограммы для каналов, иногда пишут несколько источников через ,
      • EPG/телегид телепрограмма для канала, обычно ищется по источникам из url-tvg, имеет несколько форматов XMLTV и JTV
  • #EXTINF строка в которой содержатся данные канала(для каждого своя строка), в основном имя, но сюда пишут также группу, кол-во часов архива, идентификатор для url-tvg и прочие полезные данные, стандарта толком нет
    • tvg-id параметр канала, относящийся к секции #EXTINF используется для привязки EPG к каналу (в основном XMLTV), часто бывает цифровым, что ведет к проблемам если указано несколько url-tvg в листе с каналами от разных IPTV.
    • tvg-name параметр канала, относящийся к секции #EXTINF используется для привязки EPG к каналу (не точно, но в основном для JTV). Обычно сюда пишут "сырое имя" канала, например каналы СТС, СТС +2, СТС +4, будут иметь одинаковый tvg-name, но разные tvg-shift, 0,+2,+4 соответственно.
    • tvg-source параметр канала, относящийся к секции #EXTINF используется этим плеером, для приоритизации EPG, непосредственно для канала, подробнее тут

Автопоиск

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

Имеется поддержка приоритетных источников, в первую очередь поиск выполняется по url-tvg которые, удалось обнаружить в заголовке плейлиста, или явно указаны в tvg-source, если определены этих два параметра, то второй логично дополняет первый.

Плеер пытается найти EPG для канала по следующим атрибутам (указаны в порядке очереди поиска, регистр символов не учитывается):

Обратите внимание

tvg-id предназначен для привязки канала к одному url-tvg. Если в плейлисте несколько url-tvg, да еще и tvg-id цифровой, это может привести к проблемам.
Пример: У Вас объединенный плейлист двух IPTV с несколькими url-tvg, tvg-id у обоих цифровой (допустим начинается с 1), ни один плеер не сможет по tvg-id в такой ситуации корректно сопоставить EPG.

graph TD
    E(Конец)
    auto_id[Поиск EPG по:\ntvg-id]
    auto_name[Поиск EPG по:\ntvg-name]
    auto_name2[Поиск EPG по:\nназванию канала]
    prio_url-tvg[Приоритет по url-tvg\n<i>если есть в листе\nи поддерживается сервером</i>]
    prio_tvg-source[Приоритет по tvg-source\n<i>если указан</i>]

    S(Старт) ==> prio_url-tvg ==> prio_tvg-source
    prio_tvg-source ==> auto_id ==> E(Конец)
    auto_id ==>|tvg-id нет| auto_name
    auto_name ==> E(Конец)
    auto_name ==>|tvg-name нет| auto_name2

    auto_name2 ==> E(Конец)
1. tvg-id если в заголовке плейлиста указан и поддерживается источник url-tvg, то соответствие сначала будет искаться по этим источникам.
🪧 если url-tvg пуст, то поиск по tvg-id игнорируется
2. Если предыдущий шаг не дал результата, или был пропущен, то далее поиск ведется по атрибуту tvg-name и далее по названию канала, все с учетом приоритетных источников, из url-tvg или tvg-source.

Кастомизация автопоиска

Для желающих настроить лист "под себя" осталась возможность из оригинального плеера влиять на подбираемую программу.
В FOSS версии этот процесс переработан, теперь нет привязки к одному серверу, можно указать свой, можно "гвоздями прибивать" программу к телеканалам, можно грузить другие иконки.

Таким образом поддержку любого провайдера в плеере можно довести до 100%, даже без желания разработчика.
Подробнее тут

Для провайдеров/Как добавить свой EPG? (Устарело)