Contoh Penggunaan CURL Untuk Grab Video Youtube Api v3 Part 2

Ini adalah kelanjutan dari api youtube part 1, semoga dengan artikel ini kita bisa mencari id video youtube, id channel youtube, tanggal publish video youtube, judul youtube, deksripsi, nama channel, thumbnail dengan php.

Jika pada part 1 kita menggunakan function curl, maka untuk saat ini kita akan membuat dengan function file_get_contents.

Pada tutorial kali ini kita akan membahas sedikit menggunakan class di php, silahkan simak panduan berikut ini.

Kita aka membuat sebuah class dengan nama youtube, simpan dengan nama class.youtube.php

File : class.youtube.php
<?php
class Youtube {
   #Something....
}
?>

Didalam class php kita buat function __construct untuk setting Api_key nanti.
private $apikey;
   
function __construct($apikey) {
   $this->apikey = $apikey;
}

Selanjutnya, tambahkan function cari() seperti ini.
function cari($keyword = "", $page = "") {
   $json = file_get_contents('https://www.googleapis.com/youtube/v3/search?type=video&part=snippet&q='.urlencode($keyword).'&key='.$this->apikey.'&pageToken='.$page);
   $array = json_decode($json);
   return $array;
}

Terlihat bahwa function cari mempunyai dua param, dimana bernilai default kosong, fungsinya adalah untuk mencari video berdasarkan keyword dan page.

Langkah terkahir kita buat lagi sebuah function dengan nama function lihat(), fungsinya adalah untuk melihat detail dari sebuah video berdasarkan parameter video id.
function lihat($video = "") {
   $json = file_get_contents('https://www.googleapis.com/youtube/v3/videos?id='.$video.'&key='.$this->apikey.'&part=snippet,statistics');
   $array = json_decode($json);
   return $array;
}

Sekarang anggap saja kita sudah mempunyai sebuah class dengan nama class.youtube.php.

Selanjutnya...

Buat sebuah file index.php, kemudian include file class.youtube.php yang barusan kita buat.

File: index.php
<?php
require_once("class.youtube.php");

Masukkan Api key, cara membuat api key.
$apikey = "API Key";

Buat sebuah object dari class yang sudah kita buat tadi.
$youtube = new youtube($apikey);

Contoh untuk melakukan proses pencarian video:
// Data value untuk get ke youtub API
$keyword = (!empty($_GET['keyword']) ? $_GET['keyword'] : "tutorial php");
$page = (!empty($_GET['page']) ? $_GET['page'] : "");

// HTML untuk output
$html = '';

// Mencari videos berdasarkan keyword judul & output ARRAY
$videos = $youtube->cari($keyword, $page);

// Mengextract videos untuk mendaptkan judul, deskripsi dll..
foreach($videos->items as $video) {
     $gambar = $video->snippet->thumbnails->default->url;
     $judul = $video->snippet->title;
     $deskripsi = $video->snippet->description;
     $video_id = $video->id->videoId;
       
     // Lalu di jadikan HTML
     $html .= '<div class="videos">';
     $html .= '   <a href="?video='.$video_id.'">';
     $html .= '     <img src="'.$gambar.'"/>';
     $html .= '     <h3>'.$judul.'</h3>';
     $html .= '   </a>';
     $html .=    $deskripsi;
     $html .= '</div>';
}

// Membuat pagging page selanjutnya
if(!empty($videos->nextPageToken)){
   $html .= '<div align="center"><a href="?keyword='.urlencode($keyword).'&page='.$videos->nextPageToken.'">Lanjut</a></div>';
}

echo $html;

Contoh proses untuk melihat detail video.
// Data value untuk get ke youtub API
$video_id = (!empty($_GET['video']) ? $_GET['video'] : "");

// HTML untuk output
$html = '';

// Mencari videos berdasarkan keyword judul & output ARRAY
$video = $youtube->lihat($video_id);

// Mendaptkan judul, deskripsi, jumlah viewers, likes dll..
$iframe = 'https://www.youtube.com/embed/'.$video_id;
$judul = $video->items[0]->snippet->title;
$deskripsi = $video->items[0]->snippet->description;
$Publish = date_format(date_create($video->items[0]->snippet->publishedAt), "d/m/Y");
$lihat = $video->items[0]->statistics->viewCount;
$komen = $video->items[0]->statistics->commentCount;
$favorit = $video->items[0]->statistics->favoriteCount;
$suka = $video->items[0]->statistics->likeCount;
$tidak_suka = $video->items[0]->statistics->dislikeCount;
     
// Lalu di jadikan HTML
$html .= '<div class="video">';
$html .= '   <iframe src="'.$iframe.'"></iframe>';
$html .= '   <h3>'.$judul.'</h3>';
$html .= '   <p>Publish: '.$Publish.' - Lihat: '.$lihat.' - Komen: '.$komen.' - Favorit: '.$favorit.' - Suka: '.$suka.' - Tidak suka: '.$tidak_suka.'</p>';
$html .=    $deskripsi;
$html .= '</div>';

echo $html;

Jika ada yang masih bingung, berikut script php youtube api lengkapnya.

File : class.youtube.php

<?php
class Youtube {
   
   private $apikey;
   
  function __construct($apikey) {
     $this->apikey = $apikey;
  }

   function cari($keyword = "", $page = "") {
     $json = file_get_contents('https://www.googleapis.com/youtube/v3/search?type=video&part=snippet&q='.urlencode($keyword).'&key='.$this->apikey.'&pageToken='.$page);
     $array = json_decode($json);
     return $array;
   }

   function lihat($video = "") {
     $json = file_get_contents('https://www.googleapis.com/youtube/v3/videos?id='.$video.'&key='.$this->apikey.'&part=snippet,statistics');
     $array = json_decode($json);
     return $array;
   }
   
}

?>

File: index.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Tutorial Api youtube | sedotcode.blogspot.com</title>
<style type="text/css">
    body {
       background: #f5f5f5
    }

    div.videos {
       background: #fff;
       display: inline-block;
       width: 20%;
       padding: 10px;
       margin: 15px
    }

    div.videos img {
       width: 100%
    }

    div.video {
       background: #fff;
       width: 700px;
       padding: 10px;
       margin: 20 auto
    }

    div.video iframe {
       width: 100%;
       border: 0;
       height: 400px
    }
</style>

</head>
<body>

<form action="" method="GET">
   <input type="text" name="keyword" />
   <button>Search</button>
</form>

<?php
/**
 * Kunjungi sedotcode.blogspot.com untuk tutorial dan source gratis
 */
// Include youtube.php
require_once("class.youtube.php");

// Data value untuk get ke youtub API
$apikey = "API Key";
$keyword = (!empty($_GET['keyword']) ? $_GET['keyword'] : "tutorial php");
$page = (!empty($_GET['page']) ? $_GET['page'] : "");
$video_id = (!empty($_GET['video']) ? $_GET['video'] : "");

// Membuat sebuah object
$youtube = new youtube($apikey);

// HTML untuk output
$html = '';

// Melakukan pencarian video
if(empty($video_id)){
   
   // Mencari videos berdasarkan keyword judul & output ARRAY
   $videos = $youtube->cari($keyword, $page);

   // Mengextract videos untuk mendaptkan judul, deskripsi dll..
   foreach($videos->items as $video) {
       $gambar = $video->snippet->thumbnails->default->url;
       $judul = $video->snippet->title;
       $deskripsi = $video->snippet->description;
       $video_id = $video->id->videoId;
       
       // Lalu di jadikan HTML
       $html .= '<div class="videos">';
       $html .= '   <a href="?video='.$video_id.'">';
       $html .= '     <img src="'.$gambar.'"/>';
       $html .= '     <h3>'.$judul.'</h3>';
       $html .= '   </a>';
       $html .=    $deskripsi;
       $html .= '</div>';
   }

   // Membuat pagging page selanjutnya
   if(!empty($videos->nextPageToken)){
     $html .= '<div align="center"><a href="?keyword='.urlencode($keyword).'&page='.$videos->nextPageToken.'">Lanjut</a></div>';
   }

}

// Atau melihat detail video
else{
   
   // Mencari videos berdasarkan keyword judul & output ARRAY
   $video = $youtube->lihat($video_id);

   // Mendaptkan judul, deskripsi, jumlah viewers, likes dll..
   $iframe = 'https://www.youtube.com/embed/'.$video_id;
   $judul = $video->items[0]->snippet->title;
   $deskripsi = $video->items[0]->snippet->description;
   $Publish = date_format(date_create($video->items[0]->snippet->publishedAt), "d/m/Y");
   $lihat = $video->items[0]->statistics->viewCount;
   $komen = $video->items[0]->statistics->commentCount;
   $favorit = $video->items[0]->statistics->favoriteCount;
   $suka = $video->items[0]->statistics->likeCount;
   $tidak_suka = $video->items[0]->statistics->dislikeCount;
     
   // Lalu di jadikan HTML
   $html .= '<div class="video">';
   $html .= '   <iframe src="'.$iframe.'"></iframe>';
   $html .= '   <h3>'.$judul.'</h3>';
   $html .= '   <p>Publish: '.$Publish.' - Lihat: '.$lihat.' - Komen: '.$komen.' - Favorit: '.$favorit.' - Suka: '.$suka.' - Tidak suka: '.$tidak_suka.'</p>';
   $html .=    $deskripsi;
   $html .= '</div>';
   
}

// Output HTML
echo $html;

?>
</body>
</html>

Selesai, terima kasih semoga bermanfaat. Spesial thanx to ibacor.com :love:
Bacaan menarik lainnya:
  1. Script Php XML Sitemaps Generator Tools
  2. Youtube API V3 Search by Keyword PHP
Load disqus comments

0 komentar