Upload video ke Youtube dengan PHP

Wah2 udah 2 bulan lebih nggak nulis blog nih, coz kerjaan yg super duper padat dan ga bisa ditinggalkan. Mumpung skrg lg rada longgar, dan kebetulan juga baru aj dapet ilmu baru, wajib hukumnya untuk berbagi dengan ente-ente semua.

Sesuai dengan judulnya, mengupload video dari website kita langsung ke youtube kayaknya lg trend bgt nih, di lihat dari berbagai sudut pandang, banyak keuntungan yg didapet. Yang paling mendasar adalah space di hosting kita, tentunya kita tidak perlu menyiapkan space lebih untuk menyimpan file video. Yang  kedua adalah video yg kita upload lebih besar kemungkinannya untuk dilihat oleh khalayak banyak, sepertinya ga perlu ane dijelasin lg apa alasannya.

Dalam membuat engine ini, tutorial lengkapnya bisa dilihat di sumbernya langsung, tp disini ane akan coba jelaskan menggunakan bahasa kita yang mungkin akan mudah dimengerti.

Syarat utama adalah kita mesti punya account youtube dan account google dengan menggunakan email yg sama (tidak harus menggunakan gmail, bisa apa aj) sebab nanti kita harus mendapatkan DeveloperKey melalui account di google, ente bisa masuk kesini buat dapetin DeveloperKey.

Kedua yg harus diperhatikan adalah bahwa engine ini hanya bisa running dengan menggunakan PHP >= 5.1.3, jadi yg masih pake versi PHP dibawah itu, buru-buru di upgrade deh. Kita juga harus menyiapkan Zend_Gdata >= 1.7.7. yg bisa diunduh di sini. Langkah selanjutnya buka file php.ini dan bagian extension=php_openssl.dll di hapus titik komanya ( ; ). Kemudian tambahkan juga include_path=".:/user/local/lib/php:/path/to/ZendGData/library, jika masih di localhost, bagian terakhir ini bisa diabaikan.

Setelah persiapan selesai, kita tinggal menggunakan script berikut untuk memulainya.


<?php
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); 


$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
              $username = 'youremail@mail.com',
              $password = 'yourpassword',
              $service = 'youtube',
              $client = null,
              $source = 'MazhtersSource', // untuk identifikasi aplikasi kita
              $loginToken = null,
              $loginCaptcha = null,
              $authenticationURL);


$developerKey = 'developerKey';
$applicationId = 'Test Upload Video';
$clientId = 'Test Upload Video Client';


$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);


// create a new VideoEntry object
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$myVideoEntry->setVideoTitle('ini title videonya');


$myVideoEntry->setVideoDescription('ini descripsi videonya');
// The category must be a valid YouTube category!
$myVideoEntry->setVideoCategory('ini categorinya');


// Set keywords. Please note that this must be a comma-separated string
// and that individual keywords cannot contain whitespace
$myVideoEntry->SetVideoTags('ini tag videonya'); // biar gampang dicari


$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$tokenValue = $tokenArray['token'];
//$postUrl = $tokenArray['url'];


$nextUrl = 'www.mazhters.com'; // url setelah sukses upload video


// build the form
$form = '<form action="'. $postUrl .'?nexturl='. $nextUrl .
        '" method="post" enctype="multipart/form-data">'. 
        '<input name="file" type="file"/>'. 
        '<input name="token" type="hidden" value="'. $tokenValue .'"/>'.
        '<input value="Upload Video File" type="submit" />'. 
        '</form>';
echo $form;
?>


Ok guys, itu aj langkah-langkahnya, dan bisa langsung dicoba upload vidoenya.