EPG converter for OTT-play FOSS
Описание
Инструмент создания телепрограммы для OTT-Play FOSS, использует один поток, и буферное чтение из файла, что позволяет минимизировать нагрузку на систему при разборе файла, потребляет 1 поток и примерно 25 мб оперативной памяти при обработке 300 МБ файла, на современном процессоре тратит на это порядка 35 сек. Для любопытных есть бенчмарки.
Поддерживает работу с конфиг файлами, указание параметров через командную строку, и получение данных через stdin (а значит файл можно вообще не скачивать на диск). Пример конфига лежит в samples/sample_config.json
После каждого запуска актуализируется база данных по обработанным провайдерам chcache.db
на ее основе в конце создается общий список каналов.
epgcache.tmp
это данные epg последнего обработанного провайдера, пересоздается при обработке нового провайдера.
Аргументы командной строки
Общая схема: <app> [-l] [-e|-c OPTS]
Основные опции:
-e <opts> обработать XMLTV файл по параметрам из командной строки
-с <opts> обработать XMLTV файл по параметрам из конфиг файла
-l создать список поддерживаемых каналов (как правило необходимо в конце)
ПРИМЕЧАНИЕ: Символ "," используется как разделитель в блоке <opts>
-e xml_file|-,prov_id[,prov_order]
xml_file читать данные из файла <xml_file>
- читатать данные из потока stdin
prov_id идентификатор провайдера
prov_order порядок сортировки провайдера (исползуется в приске каналов, по умолчанию 50)
-c config_file[,prov_name]
config_file файл со списком для обработки
prov_name дополнительный фильтр, для выборки только одного провайдера
Примеры
blabla
из файла epg.xml
:
Создать EPG для провайдера ott-play-epg-converter -e epg.xml,blabla
bestprov
из конфиг файла conf1.json
:
Создать EPG для провайдера ott-play-epg-converter -c conf1.json,bestprov
всех
провайдеров из конфиг файла conf1.json
:
Создать EPG для А также создать список каналов для комопнента ott-play-epg-logic
ott-play-epg-converter -l -c provs.json
blabla2
напрямую с сайта из gz архива:
Создать EPG для провайдера curl --silent http://prov.host/epg.xml.gz | gzip -d -c - | ott-play-epg-converter -e -,blabla2
Пример обработки 4(и более) файлов:
В конце создается общий список обработанных каналов.
zcat epgone.xml.gz | ott-play-epg-converter -e -,myfirstprov
curl --silent http://prov.host/epg.xml.gz | gzip -d -c - | ott-play-epg-converter -e -,otherprov1,49
curl --silent --compressed http://prov.host/epg.xml | ott-play-epg-converter -e -,otherprov2,51
...
zcat epglast.xml.gz | ott-play-epg-converter -l -e -,islastprov,99`)
Prebuild
Готовые бинарники я компилирую для Windows (x64, x86)/Linux (x64, arm64, arm7a-soft-float, arm7-hard-float)
Иногда буду добавлять версии для Android (arm64, arm7a-soft-float)
В теории можно завести на всем, что поддерживает GO и кросс-компил, но сборкой придется заняться самостоятельно.
Бенчмарки
В файле benchmarks.md есть немного тестов EPG от it999 на различных платформах.