Blog Kategorileri

Son Eklenen Konular

Youtube rss api
Resim

Youtube rss api ile arama yapıp sonuçları listelemek için kullanabileceğiniz basit bir sınıf. Sınıf içerisinde aramak istediğiniz kelime veya kelimeleri tanımlayıp bulunan sonuçların kaçtane gelmesini, kaçıncı sıradan başlamasını belirtebiliyorsunuz. Sınıf get metodları ile array, json ve serialize şekilde değerleri alabiliyorsunuz.

Sınıf Kullanımı 1. Örnek

php

//sınıf başlatmak 
$yApi = new mavitmYoutubeApi();
$yApi->startSet(1)->limitSet(20)->tagSet('bunu ara')->videoSearch();
if($yApi->numRows()){
    $data = $yApi->arrayData();
}else{
    $data = null;
}

/* $data değişkeninin çıktıtı
array => (
    img => video resim adres,
    id => video id no,
    title => video adı
    url => video url adresi
)
*/


sınıf kullanımı 2. örnek

php

//sınıf başlatmak 
$yApi = new mavitmYoutubeApi(array(
    'start' => 1,
    'limit' => 20,
    'keywords' => 'bunu ara'
    
));
$yApi->videoSearch();
if($yApi->numRows()){
    $data = $yApi->arrayData();
}else{
    $data = null;
}

/* $data değişkeninin çıktıtı
array => (
    img => video resim adres,
    id => video id no,
    title => video adı
    url => video url adresi
)
*/



Sınıf Kodları

php

<?php
/**
 * Youtube Rrs Api 
 *
 *@author Ayhan ERASLAN [www.mavitm.com]
 */
class mavitmYoutubeApi{
    private $start = 1,
            $limit = 20,
            $keywords = 'metallica+suicidal',
            $apiUrl = 'http://gdata.youtube.com/feeds/api/videos?vq=M-1&start-index=M-2&max-results=M-3',
            $imgUrl = 'http://i.ytimg.com/vi/',
            $singleInfoUrl = ' http://gdata.youtube.com/feeds/api/videos/%s',
            $videoUrl = 'www.youtube.com/watch?v=%s',
            $thumbnail = 0, //0 buyuk, 1 kucuk resim
            $data = array();
            
            public function __construct(){
                $param = func_get_args();
                if(empty($param[0]) || !is_array($param[0])){return;}
                if(count($param[0]) > 0){
                    foreach ($param[0] as $key => $value) {
                        $this->$key = $value;
                    }
                    $this->start = $this->start > 0 ? $this->start : 1;
                    $this->thumbnail = $this->thumbnail < 1 ? 0 : 1;
                    $this->limit = ($this->limit > 50 ? 50 : ($this->limit < 1 ? 1 : $this->limit));
                }
                
                return $this;
            }
            
            ########################################################################
            #SET
            ########################################################################
            
            public function startSet($intval){$this->start = intval($intval) > 0 ? intval($intval) : 1;return $this;}
            public function limitSet($intval){$this->limit = intval($intval) > 0 ? intval($intval) : 20;return $this;}
            public function tagSet($stringD){$stringD = stripslashes($stringD);$stringD = str_replace(' ','+',$stringD);$stringD = addslashes(strip_tags($stringD));$this->keywords = $stringD;return $this;}
            public function thumbnailSet($intval){$a = intval($intval);if($a == 1){$this->thumbnail = 1;}else{$this->thumbnail = 0;}return $this;}
            
            ########################################################################
            #SET
            ########################################################################
            
            ########################################################################
            #GET
            ########################################################################
            
            public function jsonData(){if(count($this->data) < 1){return null;}return json_encode($this->data);}
            public function serializeData(){if(count($this->data) < 1){return null;}return serialize($this->data);}
            public function arrayData(){if(count($this->data) < 1){return null;}return $this->data;}
            public function numRows(){return count($this->data);}
            
            ########################################################################
            #GET
            ########################################################################
            
            
            public function videoSearch(){
                $param = func_get_args();
                if(!empty($param[0]) && is_array($param[0])){
                    if(count($param[0]) > 0){
                        foreach ($param[0] as $key => $value) {
                            $this->$key = $value;
                        }
                        
                        $this->start = $this->start > 0 ? $this->start : 1;
                    }
                }
                
                $this->apiUrl = str_replace(array("M-1","M-2","M-3"), array($this->keywords,$this->start,$this->limit), $this->apiUrl);
                $xml = (array)simplexml_load_file($this->apiUrl);
                foreach ($xml['entry'] as  $value) {
                    $id = end(explode('/',$value->id));
                    $this->data[] = array('img' => 'http://i.ytimg.com/vi/'.$id.'/'.$this->thumbnail.'.jpg', 'id' => $id, 'title' => $value->title, 'url' => sprintf($this->videoUrl,$id));  
                }
            }

            public function singleInfo($id){
                $id = $this->securityText($id);
                $xml = simplexml_load_file(sprintf($this->singleInfoUrl,$id));
                return $xml;
            }
            
            
            public function securityText($string){
                $string = strip_tags(stripslashes($string));
                $string = str_replace(
                    array("\\","'","\""," "), 
                    array("","","",""), 
                    $string);
                return $string;
            }
            
}
?>



Yazmış olduğum api ile hazırladığım çalma listesi uygulamasını indirmek için buraya tıklayabilirsiniz. İndirdiğiniz uygulama içerisinde api sınıfı bulunmakta.
Uygulamanın görünümü için buraya tıklayın

Uygulamada ziyaretçiler kendi favori listesini oluşturabiliyor. Oluşturdukları listeler sunucu üzerinde txt belgeler içerisinde dizi değişken halinde bulunuyor, liste oluşturan kişilere cookie ile sadece oluşturduğu dosyanın adı 1 yıl süre için gönderiliyor.

comments powered by Disqus