Youtube video bilgilerini görüntülemek, Videos: list

Önceki makalelerimizde Youtube’da Search:list’i kullanarak arama yapmıştık ve video id’si başlık açıklama gibi bilgileri görüntülemiştik. Fakat bu bizim için yeterli değil görüntüleme sayısı,kaç like kaç dislike almış veya video etiketleri, kategorisi gibi bilgilerini istiyoruz. Örneğin çakma bir Youtube yapıyorsunuz. Arama yaptıktan sonra sonuçları listelediniz. Listeden bir videoya tıkladınız. Videoya gitmek için önce videonun detaylı bilgilerine ihtiyacınız var. O zaman birlikte videonun bilgilerini görüntüleyelim.


YOUTUBE DATA APİSİNİ KULLANMAK İÇİN
  • console.developers.google.com’da Projemizi oluşturduk
  • Kullanacağımız apiyi etkinleştirdik
  • OAuth istemci kimliğini oluşturduk ve oluşturuken sitemize gerekli izinleri verdik.
  • OAuth istemci kimliğinin json dosyasını indirdik
  • GitHub dan Google Client Api kütüphanesini indirdik
  • Composer yardımıyla Vendor  klasörümüzü de edindik

Eğer bu işlemleri yapmadıysanız Buraya Tıklayarak OAuth Makalemi inceleyiniz. Bu işlemleri yaptıksak alt yapı hazır demektir.


Aşağıdaki video bilgilerini çektiğimiz fonksiyonumuzun aldığı parametreleri inceleyelim.

function videosListById($service, $part, $params) {
    $params = array_filter($params);
    $response = $service->videos->listVideos(
        $part,
        $params
    );

    print_r($response);
}
  1. Birinci  parametre Youtube Data Api servisimizi gönderdiğimiz değişken
  2. İkinci parametre ‘snippet,contentDetails,statistics’ gibi json dosyasında görüntülemek istediğimiz bilgileri string olarak verdiğimiz parametre.
  3. Üçüncü parametremiz ise array olarak gönderdiğimiz parametre bu parametre içerisine hangi videoların bilgilerini görüntülemek istiyorsak o videoların id lerini array olarak gönderiyoruz.
    • Video bilgileri : array(‘id’ => ‘Ks-_Mh1QhMc’)
    • Videoların bilgileri: array(‘id’ => ‘Ks-_Mh1QhMc,c0KYU2j0TM4,eIho2S0ZahI’)
    • Populer Videolar :array(‘chart’ => ‘mostPopular’, ‘regionCode’ => ‘US’, ‘videoCategoryId’ => )
    • Beğendiğim videolar : array(‘myRating’ => ‘like’)

 

videosListById($service,
    'snippet,contentDetails,statistics', 
    array('id' => 'Ks-_Mh1QhMc'));

şeklinde video bilgilerini listeleyebiliriz. Şu dosyaları oluşturalım.

  • index.php
  • oauth2callback.php

index.php dosyasının içerisine

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <style type="text/css">
 body{
 font-family: Arial, Helvetica, sans-serif;
 }
 
 
 .kutu{
 width: 60%;
 float: left;
 margin: 5px;
 padding: 10px;
 padding-left: 10px;
 border-radius: 3px;
 border:1px solid #ddd;


 </style>
 <script src="https://apis.google.com/js/platform.js"></script>
</head>
<body>

<?php
require_once __DIR__.'/vendor/autoload.php';
session_start();
$client = new Google_Client();
$client->setAuthConfig('jsonyoutube.json');
$client->addScope('https://www.googleapis.com/auth/youtube.force-ssl');
$client->addScope(Google_Service_YouTube::YOUTUBE_READONLY);

if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
 $client->setAccessToken($_SESSION['access_token']);
 $service = new Google_Service_YouTube($client);
 
 $response = videosListById($service,'snippet,statistics', array('id' => 'jVsUOiBzu7o'));
 
 $bilgi = $response["items"][0]["snippet"];
 $goruntu = $response["items"][0]["statistics"];

echo "<div class='kutu'>Video Başlık :".$bilgi["title"]."</div>";
 echo "<div class='kutu'><img src=".$bilgi['thumbnails']['high']['url'].">"."</div>";
 echo "<div class='kutu'>Kanal Adı :".$bilgi["channelTitle"]."</div>";
 echo "<div class='kutu'>Açıklama :".$bilgi["description"]."</div>";
 echo "<div class='kutu'>Taglar : ";
 foreach ($bilgi["tags"] as $key => $value) {
 echo $value.",";
 }
 echo "</div><div class='kutu'>Video Yüklenme Tarihi : ".$bilgi["publishedAt"]."</div>";
 echo "<div class='kutu'>Yorum Sayısı : ".$goruntu["commentCount"]."</div>";
 echo "<div class='kutu'>Dislike : ".$goruntu["dislikeCount"]."</div>";
 echo "<div class='kutu'>Like : ".$goruntu["likeCount"]."</div>";
 echo "<div class='kutu'>Görüntülenme : ".$goruntu["viewCount"]."</div>";
 
 
} else {
 $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/1-proje/youtube/oauth2callback.php';
 header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}

function videosListById($service, $part, $params) {
 $params = array_filter($params);
 $response = $service->videos->listVideos(
 $part,
 $params
 );
 return $response;
}

?>
</body>
</html>

oauth2callback.php dosyasının içerisine

<?php
require_once __DIR__.'/vendor/autoload.php';
session_start();
$client = new Google_Client();
$client->setAuthConfigFile('jsonyoutube.json');
$client->addScope('https://www.googleapis.com/auth/youtube.force-ssl');
$client->addScope(Google_Service_YouTube::YOUTUBE_READONLY);
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/1-proje/youtube/oauth2callback.php');

if (! isset($_GET['code'])) {
 $auth_url = $client->createAuthUrl();
 header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
 $client->authenticate($_GET['code']);
 $_SESSION['access_token'] = $client->getAccessToken();
 $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/1-proje/youtube/';
 header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}

Kodlarımızı yazdıktan sonra görüntleyeceğimiz sonuç şu şekilde olacaktır.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir