spájame
slovenskú
IT komunitu
pridaj sa
Registrácia · Login

Damián Imrich 5.10.2012
Hodnoť článok:
9 1

YouTube API

Jednoduché prepojenie YouTube s vašou aplikaciou.

Nedávno som pre môj web potreboval prepojenie s youtube.Po hľadaní som zistil že toho na interneťe nieje veľa po Slovensky alebo Česky (skoro nič)

Gdata

Gdata je subdómena youtube.com(http://gdata.youtube.com/).Táto služba poskytuje podľa kódu youtube videa získať informácie o videu v súbore xml.Pri zadaní url http://gdata.youtube.com/feeds/api/videos/kód videa vám nabehne xml súbor.Kód videa sa dá ľahko zistiť s url videa napríklad máme url http://www.youtube.com/watch?v=FTYHQBNMJ8c kód videa je FTYHQBNMJ8c.

Použitie

V php sa dá tento xml súbor spracovať a získať s neho to čo potrebujeme.Pre získanie titulku a popisu použijeme DOMDocument na čítanie s xml súboru.Tu je kód na získanie titulku videa:

$url = "http://gdata.youtube.com/feeds/api/videos/KOD_VIDEA";
$doc = new DOMDocument;
$doc->load($url);
$title = $doc->getElementsByTagName("title")->item(0)->nodeValue;

Ked chceme získať popisok tak zmeníme title na description.
Na získanie času videa je už úplne iný kod.V ňom používame simplexml.Kedže gdata uvádza čas v sekundách tak následne prevediem čas na minúty a sekundy.
Kód:

$sxml = simplexml_load_file('http://gdata.youtube.com/feeds/api/videos/'.$url2[0]);
$media = $sxml->children('http://search.yahoo.com/mrss/');
$yt   = $media->children('http://gdata.youtube.com/schemas/2007');
$attr1 = $media->group->thumbnail[0]->attributes();
$thumbnail  = $attr1['url'];
$attr2 = $yt->duration->attributes();
$length  = $attr2['seconds'];
$video_duration = floor($length/60) . ":" . $length % 60;

To je s odomňa s používania všetko.

Náhľady videa

Náhľady získame http://i3.ytimg.com/vi/KOD/0.jpg táto url obsahuje prvý náhľad(úvodny) vo veľkosti 297x223.Ked nahradime 0.jpg na 1.jpg to je malý náhľad(úvodny) 120x90.Ked zadavame namiesto 0.jpg 2,3... tak to ukáže malé nahľady ale už s inej časti videa.A najväčší je maxresdefault.jpg ten má veľkosť 1280x720.Veľký náhľad je bohužial iba ten úvodny.

Názov veľkosť
0.jpg 297x223
1.jpg,2.jpg,3.jpg 120x90
maxresdeafult.jpg 1280x720
Damián Imrich Damián Imrich

Som 13 ročný programátor. Programujem od 11rokov.


Hodnoť článok:
9 1

22 komentárov k článku:

Komentovať môžu iba prihlásení

Zaregistruj sa cez bezplatnú registráciu alebo použi login cez Facebook (FB Connect)

Prihlás sa tu, ak už máš profil na Zajtra.sk:


Zabudol som heslo

1 1 Moďerný Občan 8.10.2012 10:33:56
@Michal Obeda nejde o to, ci ides s prudom. Ide o to, ze nepouzivas technologie tak ako treba. jQuery je urcene vylucne na DOM manipulaciu, MVC frameworky su urcene na pracu s modelmi (datami). Cez jQuery nespravis to co spravis s MVC frameworkom, ak si myslis, ze hej, tak ti neverim, ze mas s takymto patternom akekolvek skusenosti :) Alebo mi chces povedat, ze ukladas v jQuery modely do $.data? To ako keby si isiel na ryby s bazukou.

XML je vhodne tam, kde potrebujes vytvarat zlozitejsie struktury, ale urcite nie na reprezentovanie plain dat. Ak ho pouzivas cross vsetky situacie, tak znova nevyuzivas technologie tak ako treba a zvycajne to skonci skrabanim si laveho ucha pravou rukou.
1 2 Michal Obeda 8.10.2012 10:15:28
@Moďerný Občan - aha, takže ak nejdem s prúdom, tak nerozumiem konkrétnej technológii? Nepoužívam prehnane html5 na weboch (lebo viem, že je rovnaký hype okolo toho) a preto sa nevyznám do html? Alebo si dovolím v php používať niečo iné, ako MVC pattern, tak už nerozumiem technológii? Väčší nezmysel si nemohol napísať...
Mám skúsenosti s http://javascriptmvc.com/ a nemyslím si, že jeho používanie je až taká výhra oproti "klasickému" javascript/jquery kódu.

Dnes sa už chvalabohu upúšťa od čisto serverových aplikácií? Ja tvrdím - bohužiaľ. Pretože väčšina tých aplikácií je zle napísaná a často kvôli jednej js chybe ti prestane fungovať dôležitá časť aplikácie (samozrejme, nemá čisto serverovú náhradu).
Základom asynchrónnych volaní v JS bolo pravé XML. Backbone si s nim neporadí? Tak je to nepodarok.

Ja veľmi dobre viem, čo znamená json. Používal som ho už vtedy, keď väčšina ľudí písala ajaxové volania s XML odpoveďou. Ale nechápem, prečo by som mal XML považovať za zastaralý jazyk.
1 1 Moďerný Občan 8.10.2012 08:46:42
@Michal Obeda ak tvrdis, ze je to len vystrelok doby, tak som si 100% isty, ze javascriptu nerozumies. DOM frameworky su na pracu s datami prikratke, az absolutne nevhodne a pisat event driven aplikaciu v cistom javascripte je totalny nezmysel, ak samozrejme miesto troch mesiacov nemas na vyvoj tri roky. Dnes uz su chvala bohu na ustupe cisto serverove web aplikacie a castokrat je podstatne rozumnejsie vytvorit API a vyuzivat ho rovno u klienta za pomoci js. Appka je svyznejsia, nemusis ju s kazdym requestom prekreslovat a pouziva sa tak, ako ju user pozna z desktopu.

To, ze XML nie je kompatibilne s backbonom nie je chyba jeho tvorcov, skus si zistit, co znamena JSON a zistis, ze bol vytvoreny specialne pre js s nejakym opodstatnenim ;)

Sry za pripadne chyby, pisem z iPadu...
0 1 Michal Obeda 8.10.2012 01:12:02
@Moďerný Občan - za veľmi obľúbené považujem php, backbone.js je len taký výstrelok modernej doby (za tie roky, čo robím s webom tu bolo plno takých). Ak nie je "kompatibilný s XML", tak to nie je chyba samotného XML, ale tvorcov backbone.js.

Aj samotné použitie frameworku spotrebuje viac systémových prostriedkov, ako kód bez neho. To však neznamená, že ho nebudeme používať. Hardvér je lacný, nemá zmysel sa zaoberať mikrooptimalizáciami a šetrenie tisícin sekundy pri použití json namiesto xml, je zbytočné.

Ja rád robím s json-om, ale pamätám si ešte pred pár rokmi, ako ma všetci presviedčali, že XHTML je moderné a je to budúcnosť, pretože stavia na XML a je pre stroje ľahko čitateľné. A zrazu je z XML dinosaurus. Zmeškal som niečo? Alebo je to len ďalší hype?
1 0 Moďerný Občan 7.10.2012 22:20:53
@František "yderf" Haško co je na pouziti XML v PHP rozumnejsie? Stale su tam tie iste problemy ako som uz spominal - vacsi objem dat, vacsie naroky na parsovanie.

Kazdopadne dik za link, nevsimol som si to. Aj som sa cudoval, ze by tam nic take nebolo, kedze google robi kazde svoje API aj v JSON.
0 2 tester 7.10.2012 22:15:59
...
0 0 František "yderf" Haško 7.10.2012 22:12:19
@Moďerný Občan a tak kuknut na http://gdata.youtube.com/demo/index.html a vsimnut si Request Parameters: -> Output format a tam mas na vyber, ci chces xml alebo json? Autor samozrejme daval priklad v php, tak pouzil xml, co mi pre php pride rozumnejsie.
1 1 Moďerný Občan 7.10.2012 21:34:25
@Michal Obeda to, ze javascriptovske frameworky (napriklad velmi oblubeny backbone.js) nie su velmi kompatibilne s tymto starym dinosaurom. Nehovoriac o tom, ze na jeho parsovanie potrebujes viac systemovych prostriedkov, kedze definicia XML objektu je obsirnejsia ako povedzme JSONu a teda aj z hladiska datoveho prenosu je vhodnejsi prave JSON.
0 2 Michal Obeda 7.10.2012 21:26:34
@Moďerný Občan - a môžem vedieť, čo je na XML v 21. storočí zlé?
0 1 Moďerný Občan 7.10.2012 18:22:46
Si v tom google robia kozy? XML v 21. storoci?
2 0 František "yderf" Haško 6.10.2012 11:14:30
@Michal Obeda Zjavne sme prisli full circle k tom, ze niekto je rad i za to malo, co tu pribudne a nie je to nejaka filozoficka/startup/reklamna blbost.
2 2 Michal Obeda 6.10.2012 11:11:30
@František "yderf" Haško - ja mu to prepáčim, ale nevidím dôvod ho chváliť, ako keby napísal niečo svetoborné.
Sme na IT webe, očakávam znalosť programovania na vyššej úrovni a toto sú tak simple veci, že si aj tak vždy k tomu radšej pozrieš dokumentáciu.

Iné je to napr. u článkov o FB aplikáciách, kde je množstvo problémov a samotný FB sa tvári ako jeden veľký bug. Tam takéto články majú zmysel, ale ak by išlo o podobne jednoduchý článok, tak by som ho tiež kritizoval.
1 0 František "yderf" Haško 6.10.2012 10:52:37
Ja som to ocenil za to, ze som predtym o gdata.youtube.com nepocul. Hej, bolo v dnesnej dobe vysoko pravdepodobne, ze nejake api youtube na take veci ma. Ale prinos tohoto clanku je, ze tu informaciu dal priamo, kde treba hladat atd.

Tak som si isty, ze mu prepacis, ze tam pridal kratky simplexml kod, ktory samozrejme vsetci poznaju ;)
0 2 Michal Obeda 6.10.2012 10:45:07
@František "yderf" Haško - naozaj si myslíš, že to ocenia skúsenejší programátori?
Ja som asi pred pol rokom potreboval niečo podobné urobiť. Nikdy predtým som bližšie neštudoval Youtube API, ale vedel som, že určite niečo také existuje.
Informácie o obrázku som si našiel hneď, informácie o xml súbore pre video vyčítaš z dokumentácie.
A všetko ostatné je práca s XML, použitie SimpleXML atď., čo musí mať každý skúsenejší programátor v malíčku.
Ešte stále máš pocit, že to ocení aj skúsenejší človek?
1 0 František "yderf" Haško 6.10.2012 09:52:25
@Michal Obeda A obsahovo tiež žiadna výhra, to sú také základné informácie, ktoré ocenia ľudia, ktorí začínajú s programovaním.
Alebo ludia, co programuju dlho, no nikdy neriesili youtube nijako viac nez ako ho vlozit do stranky, takze im taketo jednoduche info nieco da...
0 0 Miroslav Petro 6.10.2012 01:39:14
@Michal Obeda podla mna je to skor chyba portalu... si zober, ze clanok tu ma moznost pisat ktokolvek a je logicke, ze to bude roznej urovene. Naskytuje sa otazka, ci by nebolo vhodne clanky pred uverejnenim kontrolovat.
2 2 Michal Obeda 6.10.2012 01:18:18
@JaJo Jaj - ak ma chceš kritizovať, tak najprv napíš článok ty.
Myslel som si, že toto nie je "blogísek" pre deti. Nevidím dôvod, prečo by som ho mal chváliť za malé zlepšenie, keď výsledok je stále rozpačitý.
0 3 JaJo Jaj 6.10.2012 00:51:06
shaggy tak napíš niečo ty... a porovnaj si Damiánov prvý článok s týmto a tak zlepšienie tam je....
3 6 Michal Obeda 5.10.2012 22:59:45
Nielen strašná gramatika. Ty si si to po sebe ani nečítal, však? Chyba, zlá štylistika. Aj keď je to lepšie, ako predchádzajúci článok, stále je to na veľmi zlej úrovni.
A obsahovo tiež žiadna výhra, to sú také základné informácie, ktoré ocenia ľudia, ktorí začínajú s programovaním. Ale na IT webe by som čakal informácie na trochu vyššej úrovni.
0 0 Miroslav Petro 5.10.2012 22:56:26
Prepáč, ale strašná gramatika... no každý článok poteší, takže ďakujem... :)
Zajtra.sk > Programovanie > PHP > YouTube API


Kritika

Vieš ako robiť veci lepšie? Pomôž našim odvážnejším členom a skritizuj im projekty!

Reklama

Seriály zo Zajtra.sk

Reklama