Portál AbcLinuxu, 26. října 2025 23:08
Už je to pár měsíců, co jsem v Pythonu napsal prográmek tv_grab_cz, který stahuje televizní programy ze serveru 365dni.sms.cz a generuje z nich XMLTV soubory. Pokud vlastníte televizní kartu, je to nesmírně užitečná věc, jelikož většina TV aplikací (např. TVTime, MythTV, Freevo, atd.) XMLTV přímo podporuje. Původně jsem chtěl program zveřejnit teprve až dodělám automatické generování stop-časů (v současnosti se musí na vygenerovaný soubor spustit ještě program tv_sort z balíku xmltv, který stop-časy dodatečně vygeneruje a soubor přetřídí), ale pár lidí mě prosilo zda bych ho nezveřejnil už nyní, takže tady ho tedy máte 
Grabber má celou řadu nastavení, jako první věc tedy určitě vyzkoušejte tv_grab_cz --help. Co stojí za zmínku je volba --parsetitle, která zajistí parsování titulků programů, takže např. z titulku "Kobra 11 VII (10)" vyčte, že se jedná o 10. díl 7. série daného seriálu a uloží tuto informaci do výsledného XMLTV souboru (ale pozor, některé TV aplikace těmto rozšířeným atributům XMLTV specifikace nerozumí, takže tato volba možná nebude pro vás to pravé).
Můj tv_grab_cz ještě zcela neodpovídá specifikaci API XMLTV grabberů (jelikož neukládá konfiguraci do souboru a negeneruje stop-časy). Ovšem upravit ho tak, aby specifikaci API grabberů odpovídal, by nemělo být složité a až budu mít více času, hodlám to udělat.
Jinak v grabberu používám modul keepalive.py, který pochází z výborného pythonovského balíku urlgrabber a rozšiřuje funkčnost urllib2 o keep-alive spojení. keepalive.py je v mém balíčku přiložen, nicméně tv_grab_cz funguje i bez něj (pak však samozřejmě není využito keep-alive spojení).
Pokud by někdo z vás byl pythonýr a chtěl by grabber vylepšit, budu mu moc vděčný. Patche přijímám s otevřenou náručí 
Tiskni
Sdílej:
Nebude vadit když tvůj kód trochu prostuduju a na jeho základě vylepším svuj pythonovský tv_grab_cz? Protože já Perl opravdu nerad
Btw. koukal sem na to episode-num a je to chybně, ten formát v kterém ho ukládáš není (podle specifikace XMLTV) "onscreen" ale "xmltv_ns" (který tam já používam taky, jen ho scprávně nazývám jako "xmltv_ns"). Tedy tohle je problém Maxemum TV-Guide, která by měla brát "xmltv_ns" formát a ne jen "onscreen" formát... nepsal už někdo třeba autorovi, zda by to nenapravil? Možná mu napíšu
V Pythonu se mi píše nesrovnatelně lépe (a taky mi přijde mnohem přehlednější). Ale to už je o vkusu a zvyklostech každého
). Bylo by super, kdyby tam byl grabber pro Česko už defaultně...
A 365dni.sms.cz tu bude řekl bych na věky věků, pamatuju si že tu byl i před 6 lety
Btw. tímto způsobem fungují prakticky všechny TV grabbbery dodávané spolu s xmltv (a ty jsou pro všechny možné státy světa). Tzn. není na tom nic neobvyklého...
Ty data si uživatel z 365dni.sms.cz stahuje sám (a má na to právo, když k nim má přístup i přes web, nemůžou mu nijak zakázat stahovat ta data i jinak než browserem... to je podobná věc jako třeba s alternativními ICQ klienty, atp.). Tady mám oproti Jabber službě jasnou výhodu (protože poskytovatel té Jabber služby poskytuje ta data která mu nepatří, to já nedělám).
Pokud se změní ta šablona onoho webu 365dni.sms.cz, holt to budu muset upravit. Ale vzhledem k tomu, že jediné co se bude muset upravit by byly 2 regexpy (ano, celé ty stránky parsuju regexpem), nebyl by to problém a bylo by to během chvilky (a zvládl by to i kdokoliv jiný než já, kdybych náhodou tou dobou nebyl po ruce).
Jinak ta šabloba těch stránek se nezměnila už několik let (pokud si dobře pamatuju už před těmi 6 lety to bylo stejné), tzn. nevidim důvod proč by se najednou z ničeho nic měla změnit.
Ted uz mimochodem uplne zmizel z webu, nastesti jsem nasel na disku kopii...
Ted uz mimochodem uplne zmizel z webu, nastesti jsem nasel na disku kopii...
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.