• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 17 Hlas(ů) - 3 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
365 EPG Generator (2.30.0)
@Muxosat: já třeba ani nevím k čemu tam ta diakritika slouží. Od začátku mám defaultně BEZ a nikdy nebyl problém 3

 
Citovat
@Muxosat: Jo, to jsem taky už zjistil. Dnes jsem si to zkoušel a vše, co jsem kdysi používal, už nefunguje. Už jsem se chystal, že napíšu omluvu, že jsem tě naváděl na špatnou cestu. Zkoušel jsem i AI (Gemini) a to setrvává právě na starých postupech, které teď už nefungují... A ano, github je asi nejjednodušší cestou, jak sdílet binarní soubory. Jinak, já osobně mám tohle vyřešené tak, že doma provozuji malý 24/7 běžící headless, který mi všechny tyhle věci (a plno dalších) pomáhá řešit. Je to sice složitější cesta, ale dává mi prostor udělat, co potřebuji.

Ad. diakritika. Na to existuje minimálně krátká a dlouhá odpověď. Krátká, je to úplně jedno, skoro bych řekl, že to zbytečně řešíš. Dlouhá, to je o tom, že záleží na tom, jak xmltv používáš a také, kde ho bereš nebo jak ho generuješ a jak kde a jak používáš případné palylisty (a stejně také, jak je generuješ nebo kde je bereš), ve kterých to používáš. Já osobně přijímám TV přes Tvheadend a z historických důvodů mám všechny názvy kanálů bez diakritiky. A protože si xmltv většinou generuji sám a více způsoby, vždy dbám na to, aby id kanálů, které vkládám do Tvheadend, odpovídalo použité syntaxi názvů kanálů. Takže diakritiku, právě z těch historických důvodů, nepoužívám, ale je to jedno, protože kdybych ji používal, vyšlo by to nastejno.

Ad. anketa. Anketa se dá definovat u nově založeného tématu.
 
Citovat
Mam Simple IPTV klienta pre ktoreho generujem EPG v pohode.
Ako druhy je tam vsak aj stalker klient, kde su ine nazvy stanic (napr pridane "CZ - " ako prefix) a pri nastaveni EPG na ten isty zdroj mi nedava EPG.
Neriesil niekto nieco podobne?
Je mozne nadefinovat nejako dva aliasy (optimalne) pre jednu stanicu,
alebo vygenerovat dva rozne EPG subory?
Resp. zadat dve rovnake id s dvoma nazvami?
 
Citovat
@dariely: Nic takového, jako aliasy v obecném slova smyslu u epg neexistuje. Je to tedy vždy o tom, buď na jedné straně (ve zdroji epg, tedy např. souboru mltv) upravit ta data a vytvořit v nich duplicitní záznamy s jinými channel id, nebo na straně druhé upravit ty identifikace v kódu klienta, nebo v datech, které generují nebo používají (playlisty). Úprava v klientech je samozřejmě náročná a není to ani úplně ta správná cesta, tedy modifikovat kód nějakého doplňku jiného autora. Ta úprava v datech, je už přijatelnější. Ale i tady to chce samozřejmě počítat s tím, že je potřeba tu funkci vytvořit v rámci nějakého kódu, doplňku/scriptu.

Já přijímám TV přes Tvheadend a mám značné množství kanálů z různých zdrojů, takže epg získávám několika různými způsoby. Primární je Webgrab++, ale mám i několik xmltv zdrojů, které stahuji a vybírám si z nich epg těch kanálů, které mě zajímají. A tady se hodí mít možnost filtrovat xmltv podle channel id. Nechtěl jsem se s tím vymýšlet a tak jsem si tuhle část kódu nechal napsat AI. A když jsem formuloval zadání, tak jsem tam rovnou nechal i přidat funkci přejmenování channel id. Ono to sice pro Tvheadend není potřeba, protože se to přemapování dá udělat v něm, ale protože tam mám i jiné funkce, hodilo se mi to tam mít. Tak tu definici té procedury, jako užitečného nástroje, uvádím. Je dostatečně okomentovaná, takže její použití je celkem zřejmé.
 
Kód:
from lxml import etree

def filter_xmltv(input_path, output_path, channel_ids, mode="include", replace_dict=None):
    """
    Filtruje XMLTV soubor podle seznamu ID kanálů a volitelně nahrazuje ID.

    :param input_path: cesta ke vstupnímu XMLTV souboru
    :param output_path: cesta pro výstupní XMLTV soubor
    :param channel_ids: seznam ID kanálů
    :param mode: "include" nebo "exclude"
    :param replace_dict: slovník pro nahrazení ID {původní_id: nové_id}, default None
    """
    assert mode in ("include", "exclude"), "mode musí být 'include' nebo 'exclude'"

    parser = etree.XMLParser(remove_blank_text=False)
    tree = etree.parse(input_path, parser)
    root = tree.getroot()

    # Funkce rozhodující, zda kanál/progam zůstanou
    def keep_channel(cid):
        if mode == "include":
            return cid in channel_ids
        else:  # exclude
            return cid not in channel_ids

    # Filtruj <channel> a nahraď ID, pokud je ve slovníku
    kept_channels = set()  # uložení zachovaných ID po nahrazení
    for ch in root.findall("channel"):
        original_id = ch.get("id")
        if not keep_channel(original_id):
            root.remove(ch)
            continue
        new_id = replace_dict.get(original_id, original_id) if replace_dict else original_id
        ch.set("id", new_id)
        kept_channels.add(new_id)

    # Filtruj <programme> a nahraď channel ID podle slovníku
    for prog in root.findall("programme"):
        original_id = prog.get("channel")
        if not keep_channel(original_id):
            root.remove(prog)
            continue
        new_id = replace_dict.get(original_id, original_id) if replace_dict else original_id
        # pouze pokud nový ID stále patří mezi zachované kanály
        if new_id in kept_channels:
            prog.set("channel", new_id)
        else:
            root.remove(prog)

    # Ulož XMLTV se zachováním formátování
    tree.write(
        output_path,
        encoding="utf-8",
        xml_declaration=True,
        pretty_print=True
    )
 
Citovat
Ahoj. 
Chci se zeptat jesti by někdo nemohl doplnit do seznamu sledovanitv comedy,  sledovanitv cz/sk a  sledovanitv family díky jinak perfekt program, sms ho zatím nemá
 
Citovat
Ahoj , trochu jsem laboroval ze skriptem a podařilo se mě rozchodit magio. Problém nebyl ve skriptu ale se serverem magia neboť skript vyžadoval epg ze všech kanálu a to je cca 240 kanálu , ale ochrana serveru dovolí jen 219 kanálu. Pokud je to víc berete to jako útok na server. Upravil jsem skript aby chvíli počkal a to 0,01 sekundy( případě problému dejte víc času např.0,1 sekundy) a už to stahuje bez problému. Upraveny skript přikládám a je v něm zachováno sms,magenta a magio. Jo ještě taková drobnost trošku to trvá než to stáhne tak nepanikařit  3

EDIT: Není to pro KODI to si musíte sami upravit. Stačí rozbalit a vložit do složky. Přidán seznam kanálu s ids.
EDIT 2: Provedl jsem dalsi upravu skriptu vygenerovani txt souboru ve kterem bude toto : tvg-name,tvg-id a IDS. Tuto moznost muzete zapnout/vypnout v soboru settings.py. A stale to neni pro KODI. 
je to na mem githubu . Tak muzete zkusit a dejte vedet.  1
365 EPG Generator (michalba)


Přiložené soubory
.zip   generator.zip (Velikost: 4,21 KB / Stažení: 31)
.txt   magio_ids.txt (Velikost: 4,45 KB / Stažení: 46)
 
Citovat
(03.6.2026, 10:01)michalba Napsal(a): Ahoj , trochu jsem laboroval ze skriptem a podařilo se mě rozchodit magio. Problém nebyl ve skriptu ale se serverem magia neboť skript vyžadoval epg ze všech kanálu a to je cca 240 kanálu , ale ochrana serveru dovolí jen 219 kanálu. Pokud je to víc berete to jako útok na server. Upravil jsem skript aby chvíli počkal a to 0,01 sekundy( případě problému dejte víc času např.0,1 sekundy) a už to stahuje bez problému. Upraveny skript přikládám a je v něm zachováno sms,magenta a magio. Jo ještě taková drobnost trošku to trvá než to stáhne tak nepanikařit  3

EDIT: Není to pro KODI to si musíte sami upravit. Stačí rozbalit a vložit do složky. Přidán seznam kanálu s ids.
EDIT 2: Provedl jsem dalsi upravu skriptu vygenerovani txt souboru ve kterem bude toto : tvg-name,tvg-id a IDS. Tuto moznost muzete zapnout/vypnout v soboru settings.py. A stale to neni pro KODI. 
je to na mem githubu . Tak muzete zkusit a dejte vedet.  1
365 EPG Generator (michalba)
Rozbalit a vložit do jaké složky?
 
Citovat
@mmiillaa: Já pro EPG těchto tří kanálů používám wg++.
 
Citovat
@gigiosm: do složky 365 EPG Generator . Pokud ho nemáš můžeš si ho stáhnout z GitHubu tam je komplet i s těmi úpravami . Odkaz na GitHub maš v tom mem příspěvku.
 
Citovat
(06.6.2026, 22:01)michalba Napsal(a): @gigiosm: do složky 365 EPG Generator . Pokud ho nemáš můžeš si ho stáhnout z GitHubu tam je komplet i s těmi úpravami . Odkaz na GitHub maš v tom mem příspěvku.
super, už vše běží jak má i s automatickým ukládání na můj GitHub. Díky moc. Konečně odpadá ruční generování ...
 
Citovat
Po nějaké době hledání různých zdrojů EPG, jsem se rozhod za pomocí IA vytvořit celkem silný a použitelný nástroj (python script), který navazuje na 365 EPG.
Primárně určen pro Windows.


Celý zip, doporučuji rozbalit do složky,C:\Users\Generátor EPG, případně jinde a nastavit cestu ke skriptu, zdroji a playlistu.
Osobně používám Dropbox, mám pak přístup k EPG odkudkoliv, jen je pořeba přepsat koncovku na: raw=1

365 EPG TOOLKIT.Toolkit umí generovat EPG z WebGrab ids a několika veřejných zdrojů a také vytvářet společné XMLTV.
Kontrolovat EPG, přepsat ID v playlistu a další.
Možnost stáhnout spustitelný bat a v plánovači úloh spouštět automatickou aktualizaci EPG.

Podporované zdroje
Zdroj    Stav     Poznámka
TV.SMS.cz               Používá aktuální XML (Runtime XML),velmi rychlé
Oneplay                  vlastní API
můjTVprogram.cz     HTML parser 
SledovaniTV CZ        HTML parser
Další          Doplňovat nebudu
ID databáze

Každý zdroj používá vlastní XML ve složce

365-EPG-Generator-main\sources_ids\

například

oneplay.cz.channels.xml
tv_sms_cz_ids.xml
sledovani_tv_cz_ids.xml
muj_tv_program_ids.xml

Přepis ID v playlistu

Toolkit umí:

přesná shoda shoda podle názvu odstranění

CZ|
SK|
HD
FHD
HEVC
RAW
???

Při přepisu ID , lze použít:jeden zdroj nebo více zdrojů (některé přehrávač neberou duplicitní ID, proto dva zdroje) například:

TV SMS, Oneplay, MůjTVProgram a sledovani.cz (max 2) 

Test XMLTV Porovnává playlist/XMLTV a kontroluje

platná ID
neplatná ID
chybějící ID
vypíše návrhy


Playlist může také obsahovat až 4 zdroje EPG, jen manuální zápis ve tvaru:

#EXTINF:-1 x-epg-source="o2" tvg-id="" 
#EXTINF:-1 x-epg-source="tv_sms_cz" tvg-id="" 
#EXTINF:-1 x-epg-source="muj_tv" tvg-id="" 
#EXTINF:-1 x-epg-source="sledovani_cz" tvg-id=""
ID je možno zjistit ve funkci vyhledat možné ID, nebo v XML. 

V takovém případě generujeme společné EPG,Generátor vytvoří

tv_sms.xml

o2.xml

muj_tv.xml

ve TEMP složce. AppData\Local\Temp\epg_multi_xxxxx\ a následně je sloučí. Výsledkem je epg.xml


Runtime XML (TV.SMS)

TV.SMS používá aktuální XML.

Výhody

nové názvy

aktuální loga

aktuální channel id


Nadhled programu z EPG XMLTV

Načte již hotové XMLTV. Používá se ke kontrole:

pořadu,času a popisu.


Aktualizace ID: 

Jednoduše stačí z WebGrab stáhnout aktuální channels xml a vložit do složky 365-EPG-Generator-main\sources_ids\ 


https://webshare.cz/#/file/c5KGQFgHCW/generator-epg-zip
 
Citovat
  


Přejít na fórum:


Prochází: 3 host(ů)