YouTube Data API v3 Video List

Wednesday, July 22, 2015

Ini khas untuk youtube API version 3. Version lain, mungkin lain caranya.

Sebelum nak guna youtube API, perlu create API key dulu guna akaun google sendiri. Pastikan API Key tu aktif. Lepas create, aktifkan.

Rujuk : Youtube Data API

Pada localhost, create satu file php, dan panggil API.

Dalam API ni ada macam-macam fungsi yang berlainan. Boleh rujuk nota bawah tajuk implementation guide. Salah satu adalah videolist.

Contoh kod di bawah,

<?php 
$API_key = 'blablablabla';
$maxResults = 3;

$videoDetail = json_decode(file_get_contents('https://www.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&id=eSwisMEtkBg&key='.$API_key));

print_r($videoDetail);
?>

Andaikan kita dah tahu id video tu, iaitu bfNXb6-fVaM. Tinggal masukkan je dalam request url API.

Pada print_r tu, kita akan dipaparkan result. Jika nak tengok kemas sikit, klik kanan pada page, "View Page Source".

Kita akan dapat lihat result macam ni.

stdClass Object
(
    [kind] => youtube#videoListResponse
    [etag] => "XI7nbFXulYBIpL0ayR_gDh3eu1k/PEcLptKFhu_YmtNgJBdRp5Bp1G8"
    [pageInfo] => stdClass Object
        (
            [totalResults] => 1
            [resultsPerPage] => 1
        )

    [items] => Array
        (
            [0] => stdClass Object
                (
                    [kind] => youtube#video
                    [etag] => "XI7nbFXulYBIpL0ayR_gDh3eu1k/4VEv7O0M0DyhqZy4Ylw7JfD_4Nk"
                    [id] => bfNXb6-fVaM
                    [snippet] => stdClass Object
                        (
                            [publishedAt] => 2017-02-14T17:13:42.000Z
                            [channelId] => UCY_jsmgpHvnYkvT5xTrEEJw
                            [title] => Mummy Birthday 2017
                            [description] => 
                            [thumbnails] => stdClass Object
                                (
                                    [default] => stdClass Object
                                        (
                                            [url] => https://i.ytimg.com/vi/bfNXb6-fVaM/default.jpg
                                            [width] => 120
                                            [height] => 90
                                        )

                                    [medium] => stdClass Object
                                        (
                                            [url] => https://i.ytimg.com/vi/bfNXb6-fVaM/mqdefault.jpg
                                            [width] => 320
                                            [height] => 180
                                        )

                                    [high] => stdClass Object
                                        (
                                            [url] => https://i.ytimg.com/vi/bfNXb6-fVaM/hqdefault.jpg
                                            [width] => 480
                                            [height] => 360
                                        )

                                )

                            [channelTitle] => Mohd Firdaus Mohd Rasidi
                            [categoryId] => 22
                            [liveBroadcastContent] => none
                            [localized] => stdClass Object
                                (
                                    [title] => Mummy Birthday 2017
                                    [description] => 
                                )

                            [defaultAudioLanguage] => ms
                        )

                    [contentDetails] => stdClass Object
                        (
                            [duration] => PT2M11S
                            [dimension] => 2d
                            [definition] => sd
                            [caption] => false
                            [licensedContent] => 
                            [projection] => rectangular
                        )

                    [statistics] => stdClass Object
                        (
                            [viewCount] => 463
                            [likeCount] => 3
                            [dislikeCount] => 0
                            [favoriteCount] => 0
                            [commentCount] => 0
                        )

                )

        )

)


Memandangkan ianya diconvert ke json, dan arraynya cuma satu data sahaja, tidak perlu guna foreach. Direct je panggil. Contoh.
<?php 
echo "<br>1.".$videoDetail->etag; //1."XI7nbFXulYBIpL0ayR_gDh3eu1k/PEcLptKFhu_YmtNgJBdRp5Bp1G8"
echo "<br>2.".$videoDetail->pageInfo->totalResults; //2.1
echo "<br>3.".$videoDetail->{'items'}[0]->{'statistics'}->{'viewCount'}; //3.463
?>


Code penuh.

<?php 
$API_key = 'AIzaScBb1zAdNEaqjDZ2GuiyEGy9ekXtG0q_WDm'; // <- key palsu sebagai contoh sahaja.

$videoDetail = json_decode(file_get_contents('https://www.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&id=bfNXb6-fVaM&key='.$API_key));

//print_r($videoDetail);

echo "<br>1.".$videoDetail->etag; //1."XI7nbFXulYBIpL0ayR_gDh3eu1k/PEcLptKFhu_YmtNgJBdRp5Bp1G8"
echo "<br>2.".$videoDetail->pageInfo->totalResults; //2.1
echo "<br>3.".$videoDetail->{'items'}[0]->{'statistics'}->{'viewCount'}; //3.463
echo "\n\n";

?>

0 comments: