• 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:
  • 0 Hlas(ů) - 0 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Vlastní video stream doplněk
#1
Po ukončeni SCC, jsem se rozhodl vytvořit vlastni doplněk STREAM SINEMA CITY. Už to mám dobře vymakané, přehrává z playlistu umistěném na dropbox(v mém připadě). Umí, stahuje info a hodnoceni z TMDB, přehrává trailery, řadi podle roku, žánrů atd. Přehraje i playlist z jiných zdrojů a je schopen jim načist info TMDB, v češtině, dokonce ve windows zvládne otevřit titulky na titulky.com. Jediné co mě trápí je označeni shlédnutého, když pustim video na pár sekund, nebo je link neplatný, video se označí jako shlédnuté. Byl by ochoten nějaký KODI MISTR, doplněk projít, zjistit příčinu a opravit?


Přiložené soubory Miniatury
   
 
Citovat
#2
Perfektni prace. Snad to vyjde?
 
Citovat
#3
Už nevím u jakého skinu to bylo, ale viděl jsem nastavení přesně pro tento případ, něco ve smyslu označit jako shlédnuto po x sekundách. Možná to je ve skinu Actic Fuse 2, nebo v nějakým podobným, o kterým se tu poslední dobou psalo.
 
Citovat
#4
Ale ne. Nastavení shlédnuto zajišťuje vnitřní proces Kodi, resp. jeho přehrávač. Informace, které s tím souvisí, se zapisují do video databáze Kodi. Kritéria pro zápis (tedy od jakého % přehrání obsahu daného titulu se nastaví jako přehraný), jsou nastavena defaultně v Kodi, a co si pamatuji, dají se měnit v advancedsettings.xml. Tohle ale platí jen pokud se používá Kodi přehrávač.

Pokud se používá externí přehrávač, tak to samozřejmě nefunguje. Je všas možné v souboru playercorefactory.xml zadat do parametru playcountminimumtime hodnotu, která je chápána jako doba v sekundách, po kterou musí externí přehrávač běžet (Ale pozor! Nemusí při tom nutně bežet přehrávání, počítá se čs spuštění toho externího přehrávače), po kterém se počet přehrání položky zvýší o 1.

Jestli má nějaký vzhled udělané něco ve smyslu, jak o tom píše @vladimir.domin:, je to trochu jiný případ. Já sice např. Arctic Fuse 2 občas používám, ale na tuhle volbu jsem zatím nenarazil. Ale pokud by to byl i případ @spalda33:, tedy že svůj doplněk testuje na jiném, než základním vzhledu, měl by si nejdříve ověřit, jak to funguje na tom základním. Tohle je mimochodem zásada, keré by se měli držet všichni. Ať autoři doplňku, tak jejich uživatelé. Tedy pokud doplněk nefunguje podle očekávání a v Kodi není nastaven základní vzhled, tak si nejdříve ověřit, jestli se doplněk chová stejně i v základním vzhledu. Pokud ano, je to s velkou pravděpodobností chyba jen na straně doplňku, pokud ne, může to být jak chyba doplňku, tak chyba nebo specifické chování (tzn. autor vzhledu to takhle zamýšlel a standardům a pravidlům Kodi to neodpovídá záměrně) daného vzhledu, případně obojí.

Pokud tedy @spalda33: nepoužívá externí přehrávač a používá základní vzhled, tak to popisované chování může jít pravděpodobně na vrub bugu v jeho doplňku, a méně pravděpodobně (řekl bych s pravděpodobností hodně se blížící 0, ted pokud doplněk běží na released verzi Kodi) bugu v Kodi nebo jeho python knihovnách. Ale když se podívám na to, jak současná released verze Kodi (21.2) funguje se všemi video doplňky které používám, tak jsem se nikdy s takovým chování nesetkal. Všude to funguje přesně tak, jak má, stav přehrání, tedy jak % přehraného obsahu, které ukládá pozici při přerušení přehrávání, tak příznak přehrání celého obsahu, funguje vždycky tak, jak z logiky situace vyplývá i toho, jak ji Kodi standardně řeší. A to i v případech, že se přehrání daného titulu nepodaří spustit. Výjimkou je samozřejmě Sosac.TV, ale o tom víme, že je to právě ten příklad bastlu, kde jak doplněk, tak vzhled, který je třeba při jeho spuštění používat, pravidla Kodi nedodržují.
 
Citovat
#5
(08.10.2025, 13:11)JiRo Napsal(a): Ale ne. Nastavení shlédnuto zajišťuje vnitřní proces Kodi, resp. jeho přehrávač. Informace, které s tím souvisí, se zapisují do video databáze Kodi. Kritéria pro zápis (tedy od jakého % přehrání obsahu daného titulu se nastaví jako přehraný), jsou nastavena defaultně v Kodi, a co si pamatuji, dají se měnit v advancedsettings.xml. Tohle ale platí jen pokud se používá Kodi přehrávač.
Ano používám jen deflaut skin a opravdu default to nefunguje vůbec, mám to ošetřeno v service, ale nefunguje jak má. Je to určitě chyba doplnku, protože jiné zapisují deflaut, každopadně dik za osvětu a snad to nějak vyřešim.
 
Citovat
#6
@spalda33: Určitě tě nechci odradit, jestli jsi čekal pomoc a analýzou kódu a struktury, tak tě asi zklamu. Na to nemám čas ani prostor. Ale snad se najde ještě někdo jiný... Mimochodem, tohle je téma, které by se nejlépe dalo řešit v kdysi navrhovaném subfóru pro autory, ale to neexistuje a je otázka, bude-li vůbec někdy existovat. Já tomu tedy moc nevěřím.

Jinak k tvé informaci o service. Pokud ji používáš a umístil jsi do ní části týkající se spouštění přehrávání, je to dobrá myšlenka, ale musíš to mít opravdu dobře "vyfutrované". Jde, ve vztahu k pluginu, o asynchronní proces, a nese to s sebou celou řadu rizik, pokud to není navržené správně. A proto, aby to bylo navržené správně, je třeba dobře vědět, jak v Kodi pluginy a jejich vazba na jeho jádro a zejména jeho interní přehrávač, vlastně funguje. Kdysi takhle postupoval i autor SCC, jinak excelentní programátor, nicméně o Kodi toho, tedy alespoň zpočátku, moc nevěděl. Takže když se tak stalo, psal jsem i tady na fóru, že je to sice dobrá myšlenka, ale že musí počítat s násobně většími problémy, než když tyhle části pluginu běží v jeho hlavním threadu. A skutečně, těch problémů pak v SCC dost přibylo a trvalo nějakou dobu, než se je všechny podařilo vyřešit. Takže je-li to všechno tak, jak píšeš, zdá se mi na první pohled hodně pravděpodobné, že tento porblém je třeba hledat někde tam. Ale je zjevné, že si to uvědomuješ, a tak tě už nebudu dál školit. 4

Jinak mám ale přesto ještě jednu poznámku. A i tady se tak trochu historie opakuje. Když začaly práce na vývoji SCC, upozorňoval jsem na to, že podoba názvu doplňku s doplňkem Stream Cinema CZ a SC není úplně ideální. Z mnoha důvodů. Jedním je, že slovní spojení Stream Cinema má u týmu Kodi "špatný zvuk" a byla (nevím jestli stále, ale pravděpodobně ano) zařazena na black list. Má to ten důsledek, že pokud někdo pošle do fóra kodi.tv log a objeví se v něm tato slova jako název doplňku nebo repozitáře, odmítnou se tím členové Kodi týmu zabývat. Ty jsi sice název změnil, ale řekl bych, že ne příliš, aby v tom někdo, kdo nebude číst pozorně, viděl rozdíl, nebo si řekl, že je to jen snaha, black list obejít. Možná jsem jen zbytečně opatrný, takže to klidně ber jako poznámku starého vystrašeného paranoika. Ale upozornit jsem tě na to musel. 1

A když už jsem to načal, tak ještě jedna informace ke zvážení. Tak většinou víme, nebo někdo alespon tuší či je dokonce o tom přsvědčený 3, že pohrobků SCC existuje celá řada. A to nejen ty veřejné a notoricky známé a diskutované i tady na fóru. Jasně, některé z nich se rozsahem funkcí k původnímu SCC moc nepřibližjují. Jsou ale i takové, které na na něj více či méně a různým způsobem přímo navazují. Filosofií, kódem, použitím jeho databáze, ... V takových případech se jejich autoři nějakému rozšířenému veřejnému šíření vyhýbají. Vědí proč. Dnes už ani komunita tohoto fóra není úplně spolehlivá, nehledě na to, že z fóra celkem snadno a cíleně unikají informace na jiné platformy, kde už o nějaké kultuře chování a pravidlech nemůže být ani řeč. Však např. pro SCC byl jeden z důvodů jeho konce v původní podobě i jeho extrémní rozšíření, včetně vzniku několika fór právě na jiných platformách. Nevím, jestli si tohle uvědomuješ. Nebudu tě nabádat, abys publikování tvého doplňku zvážil, ale počítej s tím, že pokud to uděláš, může to být pro jeho další existenci kontraproduktivní.
 
Citovat
#7
(09.10.2025, 10:17)JiRo Napsal(a): @spalda33: Určitě tě nechci odradit, jestli jsi čekal pomoc a analýzou kódu a struktury, tak tě asi zklamu. Na to nemám čas ani prostor. Ale snad se najde ještě někdo jiný... Mimochodem, tohle je téma, které by se nejlépe dalo řešit v kdysi navrhovaném subfóru pro autory, ale to neexistuje a je otázka, bude-li vůbec někdy existovat. Já tomu tedy moc nevěřím.

Naprosto rozumim co tim komentářem mysliš 19 a ano název je do nebe volající, chtěl jsem trochu pichnout, ale budu se stím mazlit sám, stějně to vzniklo pro vlastní potřebu a je to dostačující. Myslel jsem i kdybych ho zde postnul, pro účely ladění, tak pro spoustu uživatelů by byl k ničenu, neni vázán žádným účtem, ani databázi. Ale vim jak by to asi časem dopadlo.
 
Citovat
#8
Nerad zase otravuji, ale potřebuji trochu nakopnout. Jde mi o stahování popisu z TMdb, původně jsem tahal dle (Název, Rok), jasně pomalé, přešel jsem tedy na přímý dotaz podle ID, trochu se načitaní zrychlilo, ale pořad to je zbytečně dlouhé, (30 položek, cca 12s), otázka  4, jak to tedy max zrychlit? Jak to vlastně mají doplnky, u kterých to jde rychlostí blesku. Přemýšlel jsem uložení do cache, ale stejně to musi znova proskenovat a zapsat změny, tak to asi moc nepomůže. Diky za nasměrováni .
 
Citovat
#9
@spalda33: To už otevíráš téma, které je spíše o analytické fázi procesu paní doplňků a strategii řešení obsluhy api, spojené s možnostmi zvoleného prostředí. To poslední se týká možností použitého jazyka, v případě doplňků Kodi tedy python. Tady je každá rada drahá, v tom smyslu, že záleží, co z toho jsi schopný řešit sám a kde potřebuješ poradit. Určitě můžeš počítat s pomocí AI, a já bych se v tomto případě nebál zeptat. Ale ne, že mu popíšeš, jaký doplněk chceš a budeš čekat, že ti ho napíše (i když i tohle by asi zvládla a co vím, tak to tak hodně lidí dělá), ale že se začneš bavit právě o té analytické části problému. Nejhorší je, když si někdo nechá napsat doplněk a ani netuší, co se v něm děje a není schopen si z toho odvodil nějaké znalosti a zkušenosti a ty pak používat při další tvorbě doplňků.

Ale abych byl konkrétní, tak několik zásad (vybral jsme jen některé, bude toho určitě ještě více, ale to si už vyřiď právě třeba s pomocí AI):
  • určitě nečekej, že jeden hint vyřeší vše. Je vidět, že o tom přemýšlíš, hledáš různé cesty a to je právě to podstatné, co by se v této chvíli dalo poradit. Nesoustředit se jen na jednu cestu. Použij je všechny, resp. použij ty, které ti zlepší ty parametry, o které ti jde. Což je v této chvíli rychlost.
  • co to znamená? Hlavně to, že nebudeš hledat jednu metodu, ale zkombinuješ jich více:
    • přejít v tom procesu co možná nejrychleji na identifikaci pomocí id,
    • držet se myšlenky cache. Tady je možností jak to řešit hodně a je to přesně ta chvíle, kdy se AI zeptat na to, jaké možnoti, metody a nástroje řešení by ti navrhovala a požádat ji aby popsal jejich výhody, nevýhody, silné i slabé stránky a rizika...
    • najít point, který to hlavní kritérium (což je rychlost) ovlivní nejvíce. A to je v tomto případě jednoznačně odezva serverové služby. Jinými slovy, největší zpoždění v tomto případě dělá čekání na odpověď ze serveru. Tzn. že se v doplňku bude většinou čekat. To jednozančně vede na řešení formou asynchronních paralelních procesů. Jinými slovy, na straně tvého kódu rozdělit požadavky do skupin řešit je dílčími, asynchronními requesty.
    • ...
  • nesmíš ale zapomentou na možná omezení a rizika planoucí z obecných nároků daného řešení
    • V případě TMDb APi to je například omezení četnosti requestů, takže musíš do těch asynchronních procesů zapracovat (nějak dynamicky a parametricky) i tohle kritérium, nebo budeš od serveru TMDb dostávat negativní respons (třeba 429 Too Many Requests).
    • někdy se stává, že soustředění na výkon vede k enormnímu zatížení CPU (i když v tomto případě to asi hrozit nebude, protože ty úlohy jsou poměrně výkonově nenáročné) a nebo velké spotřebě paměti (tady už bude teřba více přemýšlet a mít paměťovou náročnost pod kontrolou). Kodi často běží na HW, kde je sice výkon GPU ny vysoké úrovni (kvůli přehrávání videa), ale výkon CPU a velikost paměti právě na špičkové úrovni nebývá. A určitě je třeba mít i na paměti to, že Kodi velmi často běží na HW, kde se příliš nedoporučuje využívat diskové operace (flash paměti, u kterých častý zápis snižuje životnost HW), nehledě na to, že ani rychlost přístupu k této paměti také nebývá špičková.
  • podobně je třeba přemýšlet a uvažovat i o možnostech a omezeních plynoucí z toho, že se jedná o Kodi doplněk, který musí splňovat jisté požadavky a dodržovat jistá pravidla definovaná v Kodi.
    • chování doplňku v okrajových stavech Kodi, při startu a nebo naopak při ukončování,
    • vhodně rozdělit úlohy v rámci doplňku
      • například rozdělit doplněk na část plugin a service a v rámci toho vyřešit vzájemnou vazbu mezi nimi
      • věnovat se skutečně metodě řešení asynchornních a paralelních procesů - tady je možností opravdu hodně - AsyncIO, Threading, Mutiprocessing. Tohle s sebou nese pak značnou dávku studia která metoda a pro co je nejvhodnější a otevírá to i další navazující témata:
        • např. pro jakou verzi python doplněk psát - tady bych se vykašlal na starší verze Kodi a orientoval se pouze na jeho aktuální verzi Kodi a verze python, které tato verze používá,
        • vybrat si pro konkrétní úlohu konkrétní metodu. Což např. pro TMDb api bude asi AsyncIO,
        • v rámci toho použít metody, které na jedné straně zamezí přetížení na straně sereru (chyba 429 Too Many Request), na straně druhé však minimalizují režii jednotlivě budouvaných spojení (např. aplikací Recyklace spojení a podobných metod). Tak se např. můžeš dostat do stavu, kdy odpověď pro těch 30 položek, pro které jsi ty potřeboval cca 12s, dostaneš za 1-2 sekundy.
        • ...
      • zvážit využití stávajících modulů či dalších doplňků které jsou dostupné v modulech Kodi (např. pro realizaci cache)
 
Citovat
#10
(03.1.2026, 15:05)JiRo Napsal(a): @spalda33: To už otevíráš téma, které je spíše o analytické fázi procesu paní doplňků a strategii řešení obsluhy api, spojené s možnostmi zvoleného prostředí.
Děkuji za informace, musel jsem si to přečíst 2X abych to pobral. Sám si tak akorat zavážu boty, tak asi poptám AI a uvidím co vypadne. Každopádně protože to mám na 3 zařízeních, tak asi půjdu cestou cache kterou umístím na serverovou část, tim zamezím častým pořadavkům na API, pokusim se nějak využit AsyncIO a synchronizovat na pozadí. Myslíš že je to dobrá cesta?
 
Citovat
#11
@spalda33: Tak obecně určitě. Záleží samozřejmě na celkové koncepci řešení a pak konkrétním provedení. Ale obecně se dá říci, že cache a hlavně AsyncIO je základem pro to, aby ses dostal na řádově lepší odezvy než dosud. Budeš určitě s odezvou finálně limitovaný tím, jak je Kodi, koncepčně už poněkud zastaralá aplikace, navrženo (včetně např. systému univerzálních skinů) a jak to pak všechno jako celek funguje.V tomhle mají novější aplikace typu Stremio, Streamlet apod. nezpochybnitelnou výhodu, protože jsou už navrženy a naspány trochu jinak.
 
Citovat
#12
(03.1.2026, 17:48)JiRo Napsal(a): ......
Tak k mé spokojenosti vyřešeno. Fičim na TMdb cache.Base uložená na dropbox, problém že neumí číst jen downloand, to bych musel řešit přes token, ale to už jsem nechtěl. Na Pc kde vše spravuju mám vždy aktualni data a ty na klik odešlu na dropbox, pak mám možnost v menu pluginu na každém zařízeni na klik stáhnout a aktualizovat data, nebo nastavit staženi po day a když neaktualizuji tak si každé zařizeni samo dopisuje do DB. Pak mám ještě vytvořený aktualizační cache py, který mi načte playlist a dopiše, nebo aktualizuje informace s možnosti přepsat jen info nebo rating, zase na klik odešlu a jen v zařizení aktualizuji. Ale duležitá je rychlost, při 200 položek na stránku, jsem se dostal z 1.9 min na 4s. Tak díky za nasměrování.                          
 
Citovat
#13
@spalda33: Gratuluji. To je optimální řešení. Samozřejmě jen pro někoho, kdo se tomu chce věnovat. A i když není člověk profesionální programátor, má dnes možnost s AI vytvořit věci, které by mu ještě před pár roky trvaly 10x déle, pokud by se do nich tedy vůbec pustil. A python je podle mne optimální právě pro někoho, kdo není profesionál. Dostatečně výkonný, ale zase ne příliš komplikovaný, aby s jeho pomocí i poučený laik s "přítelem na telefonu" dokázal velké věci. 4

Já to mám v podstatě hodně podobné. Na stroji, co běží 24/7 a zajišťuje po domácnost různé funkce, mám celou jednu oblast věnovanou právě pořizování mediálních dat. Live TV, agregaci různých zdrojů a služeb pro filmy a seriály, pořizování a doplňování infomací o titulech, vazba na obecné i uživatelské seznamy Trakt a TMDb, vyhledávání a stahování obsahu pro ty tituly, které chci mít doma, atp. To vše běží nepřetržitě, řada věcí se cachuje, a pro vybrané funkce mi tam nepřetržitě běží procesy aktualizace (typicky právě například pro aktualizaci ratingu, stejně jako tobě). Důsledně jsem to všechno oddělil tak, aby bylo jednoduché připojit k tomu různé klienty. Jsem tradicionlista, takže zatím používám především Kodi, s kterým mám dlouholeté zkušenosti. Ale počítám s tím, že až si vyberu, nebude problém nahradit ho něčím jiným. Mně se do toho ale ještě moc nehce. Kodi mi stále ještě plní vše, co od takové mediální aplikace potřebuji.
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)