Xtream rozhraní v Kodi

Mediální svět je plný standardů, rozhraní, aplikací... Je těch úrovní hodně, některá jsou nepřehledná, jiná jednoduchá, některá používaná hodně a často, jiná méně a občas. Mezi ta, která jsou poměrně rozšířená, funkčně poměrně ukotvená a také často používaná, patří Xtream rozhraní. Rozhraní služeb, která pro klienty poskytují funkce Live TV, včetně EPG, a VOD, jak v podobě filmů, tak i seriálů. Přehrávačů, které umí toto rozhraní využít, je mnoho a velmi často jsou k dispozici u Smart TV nebo různých mediálních přehrávačích. Není tedy divu, že je má i Kodi, samozřejmě ve formě doplňku.

Jeden z příkladů implementace Xtream api

Setkal jsme se s potřebou takový doplněk v Kodi mít také. V první chvíli jsem chtěl začít pátrat, z kterého repozitáře by bylo nejlepší ho získat, ale pak jsem si řekl, že daleko zábavnější bude, pokud si ho vytvořím sám. K obrazu svému. Zdálo by se to být zbytečná komplikace a tak trochu nelogický či dokonce nesmyslný krok, takže bych měl napsat, proč jsme se tak rozhodl. Jednak proto, že už rozhraní (api) Xtream mám osahané a ve formě obecné Xtream třídy v python naprogramované, protože OTT služba s tímto rozhraním patří k jednomu ze zdrojů, který používám pro příjem Live TV v Tvheadend. Druhým důvodem bylo, že jsem si chtěl ověřit nový koncept service doplňku do Kodi, který jsem si (zatím jen v hlavě a v pár poznámkách na papíře) vytvořil a chtěl jsme si ověřit, jestli to není úplná pitomost. Nebudu ten koncept service detailně popisovat (možná pár slov ztratím v závěru tohoto příspěvku), vrátím se k tomu možná ale v některém jiném příspěvku. Mimochodem, uvažuji o tom, že zavedu novou rubriku, vyváření doplňků pro Kodi, kam by se to určitě hodilo.

U čeho bych se ale rád zastavil, to je úvaha o tom, jak vlastně doplněk do Kodi koncipovat. Ve hře byla dva základní principy. První, video doplněk s funkcemi Live TV, Filmy a Seriály. Druhý, doplněk typu service, který bude pro Live TV vytvářet playlist a xmltv soubor pro IPTV Simple Client a VOD obsah, resp. odkazy na něj, bude vkládat do knihovny Kodi. Já si zvolil princip druhý. Jednak proto, že je koncepčně tomu, jak Kodi využívám bližší a jedna proto, že i kdybych si zvolil princip první, tak bych ho určitě pojal jako dvojici plugin - service. Takže napíší-li teď doplněk typu service, mohu ho kdykoliv později, s příslušnými úpravami, použít jako součást doplňku typu plugin.

Jsem tedy a začátku. Koncept jasný, bude následovat úvodní analýza, pak postavení kostry doplňku a pak už jen rutinní naprogramování jeho jednotlivých částí. Jen zběžně uvedu, pro ty, které to zajímá, jakou koncepci zvolím. Je totiž jasné, že u takového typu service (jako ostatně téměř u každé složitější service v Kodi) je vhodné zvolit nějakou formu "paralelismu". S ohledem na typ úlohy, kde klíčová je vazba na externí rozhraní (tedy řada I/O operací s kratší či delší odezvou), to bude cesta využití funkcí knihovny asyncio. Zbývá vymyslet název doplňku. Co třeba Xtream Wrapper?

Komentáře