Pereiti prie turinio

[Pasidalinu] Youtube vaizdelio informacija


Rekomenduojami pranešimai

Prireike tokio skripto, kuris grazintu informacija apie youtube vaizdeli pagal youtube nuoroda. Pasirasiau sioki toki, tai pasidalinu gal kam pravers.

 

function yt($vid, $what = "title") { 

//Author: TheChosenOne [email protected]
// $vid = Youtube video unikalus ID
// $what reiksmes:
// title = Pavadinimas (title)
// description = Aprasymas (description)
// author = Autorius (author)
// duration = Trukme sekundemis (duration in seconds)
// voters = Balsavusiu kiekis (vote count)
// rating = Reitingas (rating)
// viewers = Perziuru kiekis (View count)
// keywords = Raktazodziai (keywords)
// category = Kategorija (category)
// thumbnailSmall = Mazas paveikslelis (small thumbnail)
// thumbnailBig = Didelis paveikslelis (big thumbnail)


if(strlen($vid) > 0) {
	$url = "http://gdata.youtube.com/feeds/api/videos/$vid";
	$content = htmlspecialchars(@file_get_contents($url)); 

	if(strlen($content) > 0) { 
		if($what == "title") {
			$array = explode("media:title type='plain'", $content);
			$array2 = explode("/media", $array[1]); }

		if($what == "description") {
			$array = explode("media:description type='plain'", $content);
			$array2 = explode("/media:description", $array[1]);
			if(strlen($array2[1]) < 1) { $array2[0] = "Nera informacijos!"; }}

		if($what == "author") {
			$array = explode("name", $content);
			$array2 = explode("/name", $array[1]);
			$array2[0] = substr($array2[0],0,-1); }

		if($what == "duration") {
			$array = explode("yt:duration seconds='", $content);
			$array2 = explode("'/", $array[1]); }

		if($what == "voters") {
			$array = explode("numRaters='", $content);
			$array2 = explode("'", $array[1]); }

		if($what == "viewers") {
			$array = explode("viewCount='", $content);
			$array2 = explode("'", $array[1]); }

		if($what == "rating") {
			$array = explode("rating average='", $content);
			$array2 = explode("'", $array[1]); }

		if($what == "keywords") {
			$array = explode("media:keywords", $content);
			$array2 = explode("/media:keywords", $array[1]);
			$array2[0] = substr($array2[0],0,-1); }

		if($what == "category") {
			$array = explode("categories.cat' term='", $content);
			$array2 = explode("'", $array[1]); }

		$result = str_replace(">", "", $array2[0]);
		$result = str_replace("<", "", $result);

		if($what == "rating") { $result = round($result, 2); }
		if($what == "thumbnailSmall") { $result = "http://i.ytimg.com/vi/$vid/1.jpg"; }
		if($what == "thumbnailBig") { $result = "http://i.ytimg.com/vi/$vid/0.jpg"; }

	} else { 
		$result = "Klaida!";
		if($what == "thumbnailSmall") { $result = "http://cmo.lt/rss/rss.png"; }
		if($what == "thumbnailBig") { $result = "http://cmo.lt/rss/rss.png"; }
	}

} else {
	$result = "Tuscias ID!"; }

if(strlen($result) < 1) { $result = "Informacijos nera!"; }

return nl2br($result); 
}

 

Galima gal ir kitaip padaryt ir netgi geriau turbut, bet tik taip sugalvojau. :D

 

cia galima paziuret kaip veikia:

http://cmo.lt/yt/index.php?url=-91al_z8Szs

 

url reiksme pakeist reik i unikalu vaizdelio ID.

Redagavo TheChosenOne
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galima gal ir kitaip padaryt ir netgi geriau turbut, bet tik taip sugalvojau. :D

 

Galima naudoti PHP SimpleXML extension ir Google gražintą XML paversti į objektą:

 

// Imam XML ir konvertuojam i SimpleXML objekta
$video = simplexml_load_file($url);

// Imam objekto informacija
$title = $video->title;
$author = $video->author->name;

// "media" grupei reikia papildomo zingsnio
$media = $video->children('http://search.yahoo.com/mrss/');

// Imam "media" informacija
$description = $media->group->description;
$keywords = $media->group->keywords;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galima naudoti PHP SimpleXML extension ir Google gražintą XML paversti į objektą:

 

// Imam XML ir konvertuojam i SimpleXML objekta
$video = simplexml_load_file($url);

// Imam objekto informacija
$title = $video->title;
$author = $video->author->name;

 

Dekui. :) Geriau zymiai. As ta simplexml bandziau, bet va is media nepavyko pasigrazinti informacijos. Pakoregavau tavo koda i koki as naudojau. :)

Redagavo TheChosenOne
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dekui. :) Geriau zymiai. As ta simplexml bandziau, bet va is media nepavyko pasigrazinti informacijos. Pakoregavau tavo koda i koki as naudojau. :)

 

Atkreip dėmesį į pagrindinį (root) XML elementą:

 

<entry xmlns='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/' xmlns:gd='http://schemas.google.com/g/2005' xmlns:yt='http://gdata.youtube.com/schemas/2007'>

 

Čia "xmlns:media", "xmlns:gd" ir "xmlns:yt" yra namespace priedėliai (prefix) ir jiems priklausantys elementai prasideda su nurodytu priedėliu, pvz. <media:group>, <gd:comments>, <yt:statistics>. Todėl norint gauti šiuos elementus, reikia nurodyti jų namespace:

 

$media = $video->children('http://search.yahoo.com/mrss/');
$gd = $video->children('http://schemas.google.com/g/2005');
$yt = $video->children('http://gdata.youtube.com/schemas/2007');

 

Su <yt:statistics> šiek tiek skirtinga situacija, nes skirtingai nuo kitų elementų, informacija laikoma kaip elemento atributai - "<yt:statistics favoriteCount='372' viewCount='84550'/>". Todel reikia naudoti SimpleXML attributes() metodą:

 

$yt = $video->children('http://gdata.youtube.com/schemas/2007');

$attr = $yt->statistics->attributes();

$favorites = $attr->favoriteCount;
$views = $attr->viewCount;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...