TVDB: príklad použitia API databázy televíznych seriálov
Na svete máme TVDB, čo je otvorená databáza seriálov s dostupným API. Chvíľu sa s tým hrám a pretože s tým môžete mať problémy, tak stručne nejaký jednoduchý postup:
Vytvorte si na thetvdb.com účet a vytvorte si API, to nižšie zapisujte všade, kde uvidíte <api>
.
Otvorte si zoznam podporovaných jazykov: http://www.thetvdb.com/api/<api>/languages.xml
a vyberte si napríklad češtinu, ktorá má svoj kód cs
a ten zapisujte všade, kde uvidíte <language>
Pre každý seriál si musíte zistiť jeho ID pomocou vyhľadávača: http://www.thetvdb.com/api/GetSeries.php?seriesname=<názov>
pričom miesto <názov>
proste napíšte názov seriálu napr. Dexter. Zobrazí sa XML súbor a vyberte zo seriesid to číslo. Napríklad Dexter má 79349 a zapisujte ho všade, kde uvidíte <seriesid>
Pokiaľ si chcete stiahnuť ZIP súbor (vnútri sú tri XML súbory) tak zadajte http://www.thetvdb.com/api/<api>/series/<seriesid>/all/<language>.zip
Napríklad ten Dexter bude http://www.thetvdb.com/api/<api>/series/79349/all/cs.zip
(jediné, čo musíte doplniť je vaše API číslo.
Pokiaľ chcete rovno zobraziť (stiahnuť) XML súbor s informáciami o seriáli Dexter: http://www.thetvdb.com/api/<api>/series/79349/all/cs.xml
Uvedený odkaz zobrazí kompletné informácie o seriáli a odvysielaných dieloch. Skrátené informácie len o samotnom seriáli Dexter sú: http://www.thetvdb.com/api/<api>/series/79349/cs.xml
(vyhodilo sa slovo all z URL).
V texte XML súboru už vidíte potrebné položky: SeriesName, Overview, Banner
Pre praktické použitie by ste si teda najskôr zistili kód jazyka (asi všetci použijete cs), potom vytvorili API reťazec. Spravíte si zoznam názvov obľúbených seriálov a pomocou spomenutého vyhľadávača si ku každému seriálu priradíte jeho ID.
Potom podľa ID seriálov si stiahnete XML súbory s informáciami prípadne aj bannery.
Pre ľudí, ktorí tušia, čo je wget by to nemalo byť náročné ani naskriptovať. Buď si to všetko stiahnete ručne alebo si so znalosťou parsovania XML a wget-u urobíte skript, ktorý raz za čas spustíte.
API som nepopísal komplexne ale iba konkrétny prípad.