• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Zdravím hosta! Přihlášení Registrace


Hodnocení tématu:
  • 0 Hlas(ů) - 0 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Tvheadend a web api
#1
Založil jsem toto téma především pro sběr infromací o funkcích a možnostech webového rozhraní Tvheadend serveru. Tato část není dobře zdokumentovaná (tedy já o ní alespoň nevím) a proto jistě každý uvítá jakoukoliv novou informaci. V prvním příspěvku se, kromě společného úvodu, pokusím založit styl dokumentování a prosím vás, o jeho dodržování.

Základní volání api Tvheadend serveru

http://<user>:<password>@<ip>:9981 - základní adresa, za kterou následuje další část volání/příkazu, odpovídající zvolené funkci.

Autentizace probíhá pomocí údajů některého uživatelského účtu, který je vytvořen v Tvheadend. Zadává se buď jako <user> a <password> uvedené před adresou serveru, případně podle použitého programu, kterým se dané funkce bude volat (wget, curl, atp.). U některých funkcí se autentizace může provádět pomocí ticketu, který před tím zašle server jako součást odpovědi nějaké funkci. Je použito například v playlistu.

Všechny dále uvedené funkce se zadávají do volání api jako pokračování základního volání, tedy např. funkce playlistu, které je dále uvedená jako /playlist  se zkompletuje se základním voláním, takže konečné zadání do prohlížeče nebo jiného odpovídajícího programu (wget, curl, atp.) vypadá následovně:

http://<user>:<password>@<ip>:9981/playlist


V případě že daná funkce má nebo může být nějaké parametry, budeme se snažit je v popisu uvést. U již zmíněného playlist to může být definice kódovacího profilu Tvheadend, se kterým bude playlist vygenerován:

profile=<název profilu>

S parametrem kódovacího profilu pak bude volání funkce následující:

http://<user>:<password>@<ip>:9981/playlist?profile=webtv-h264-aac-matroska

Parametry se od vlastního zadání funkce odděluje znakem ?, další parametry mezi sebou pak znakem &

V tomto prvním příspěvku uvedu několik prvních funkcí a předpokládám, že budou postupně přibývat i za přispění ostatních. Jak už jsme napsal, budu rád, když budete dodržovat zhruba podobný formát popisu funkcí.

Funkce api Tvheadend serveru

EPG export XMLTV

/xmltv/channels - XMLTV všech kanálů serveru
/xmltv/channel/<channelid> - XMLTV kanálu <channelid>
/xmltv/channelname/<channelname> - XMLTV kanálu <channelname>
/xmltv/channelnumber/<channelnumber> - XMLTV kanálu <channelnumber>
/xmltv/tagname/<tagname> - XMLTV všech kanálů se štíkem/tag <tagname>

Tvheadend server se tak může stát zdrojem EPG ve formátu XMLTV pro ostatní zařízení v domácí síti. Vhodnou kombinací štítků/tags a použití /xmltv/tagname je možné vytvořit zdroj EPG v právě definovaném rozsahu kanálů.


Playlist

/playlist - playlist všech kanálů serveru ve formátu m3u8. Identifikace kanálů v playlistu jménem, odkaz na stream přes id kanálu.

Parametry profile=<jméno streamovacího profilu Tvheadend>, viz web GUI Tvheadend, Configurace > Stream > Profily streamů
Příklad - chceme-li tedy vytvořit playlist všech kanálů Tvheadend serveru, se streamovacím profilem h.264 Matroska, zadáme:
 
http://<user>:<password>@<ip>:9981/playlist?profile=webtv-h264-aac-matroska

Streamy

/stream/channelnumber/<channelnumber> - odkaz na stream kanálu s číslem <channelnumber>
/stream/channel/<channelid> - odkaz na stream kanálu s id <channelid>

Parametry  profile=<jméno streamovacího profilu Tvheadend>

API rozhraní - čtení - vrací se informace ve formátu pro další zpracování např, v TVH klientech nebo addons. Struktura informací je podobná formě, v jaké jsou vraceny json. Viz dále uvedený příklad /api/serverinfo.

/api/serverinfo - informace o TVH serevru, příklad toho, co server po zadání vrátí:

{"sw_version": "4.0.8~wheezy","api_version": 15,"name": "Tvheadend","capabilities": ["caclient","tvadapters","satip_client","satip_server","trace"]}

/api/epg/events/grid - aktuální EPG

/api/channel/list - seznam všech TV/Radio kanálů
/api/channel/grid - detailní informace o všech kanálech, je možné použí atribut "tags" pro výběr tv/hdtv/sdtv/radio
/api/channeltag/list - seznam tags

/api/mpegts/service/grid - seznam služeb/muxů

/api/status/subscriptions - aktuální stav TVH serveru, obsahuje informace o aktuálním nahrávání
[NEW] /api/status/connections - aktuální stav TVH serveru

Pozn. Aby bylo jasno, výstup z api není ve formátu, který by bylo možné běžně použít. Je skutečně určen spíše pro tvůrce SW, který jeho prostřednictvím může získávat Z Tvheadend serveru důležité informace.


API rozhraní - zápis - ovládání funkcí tvheadend

/api/epggrab/internal/rerun?rerun=1 - spuštění interního graberu

Předpokládám, že další popisy budou následovat, sám jich mám po různých koutech uloženo ještě dost, tak jich pár také ještě přidám. Vítané jsou také odkazy na zdroje těchto informací.
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2 (4x DVB-T UPC - 7 MUX/51 kanálů, OTT - 45 MUX/Kanálů),  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)