PHP
Youtube Video Uploading script by using php Zend Framework
Friday, 03 June 2011 10:32
ဒီ Post ကေတာ့ Php Frameword တစ္ခုျဖစ္တဲ့ Zend ကိုသံုးၿပီး Youtube ကို Video ေတြ Upload တင္တဲ့အေၾကာင္းျဖစ္ပါတယ္။ တစ္ခုေျပာစရာရွိတာက ဒီ Video File ေတြကို Youtube Website ကေနၿပီးတင္မယ္ဆိုရင္ ပိုေတာင္လြယ္ေသးတာကို ဘာလို႔ Script ေရးေနမလည္းဆိုတာဘဲျဖစ္ပါတယ္။ တစ္ခါတစ္ေလမွာ ကိုယ့္ Website ေပၚကေနျဖစ္ေစ၊ Mobile app တစ္ခုခုကေနျဖစ္ေစ Web Services သေဘာမ်ိဳးနဲ႔ Video ေတြကိုတင္ရတာမ်ိဳးေတြရွိႏိုင္ပါတယ္။ အဲဒီလိုအခါမ်ိဳးေတြမွာ ဒီလို Script ေတြက တကယ္ကိုအသံုး၀င္လာပါလိမ့္မယ္။
Requirements
1) Youtube Account တစ္ခုလိုပါတယ္။
2) Zend FrameWork ကို ဒီေနရာကေန Download လုပ္ၿပီးကိုယ့္ Project ထဲကိုအရင္ထည့္ေပးထားပါ။

require_once("Zend/Gdata/ClientLogin.php"); $yt_user = myaccount; //youtube username or gmail account
Coding start
ဒီေနရာကေတာ့ Zend Framework Libs ထဲကေန include လုပ္ထားတာျဖစ္ပါတယ္။
require_once("Zend/Gdata/HttpClient.php");
require_once("Zend/Gdata/YouTube.php");
require_once("Zend/Gdata/App/MediaFileSource.php");
require_once("Zend/Gdata/App/HttpException.php");
require_once('Zend/Uri/Http.php');
ဒါကေတာ့ ကိုယ့္ Youtube account ရဲ႕ username + password ကိုထည့္ေပးထားရပါမယ္။ တစ္ခုသတိျပဳစရာရွိတာက Youtube account username က @gmail.com ဆိုတာထည့္ေပးစရာမလိုပါဘူး။ ဥပမာ ကိုယ့္ account က myaccount@gmail.com ဆိုရင္ဒီေနရာမွာက myaccount ဆိုတာကိုဘဲထည့္ေပးဖို႔လိုပါတယ္။ password ကေတာ့ ကိုယ့္ password ကိုမွန္ေအာင္ထည့္ေပးရပါမယ္။
$yt_pw = 'hellopassword'; //account password
$yt_source = 'VideoUploadPHP'; //name of application (can be anything)
//get value from URL
$video_url = 'videos/abcd.avi';
ကိုယ့္ upload တင္ခ်င္တဲ့ video File နဲ႔ path + Filename ကိုဆိုလိုပါတယ္။ ဥပမာ video ဆိုတဲ့ Folder ထဲမွာသိမ္းထားမယ္ ဆိုရင္ေတာ့ videos\abcd.avi ေပါ့ဗ်ာ။
$yt_api_key = 'AI39si4gIRU70tv45vZBOuBquzP8qmPPtokpl-UDxwANTNg0-I8xWJh04Ndc8volAB4w8Tk8vRqIdYmVZGrJohgXO2uQklGNnlA--A'; // your youtube developer key
ဒါကေတာ့ YouTube API ကိုသုံးဖို႔ register လုပ္ထားတဲ့ Developer Key ပဲျဖစ္ပါတယ္။
ေနာက္ပိုင္း code ေတြကေတာ့ ေထြေထြထူးထူးျပင္ေပးစရာမလို မလိုပဲ အေပၚက Setting ေတြမွန္တယ္ ဆိုရင္ အလုပ္လုပ္ပါမယ္။ Coding အျပည့္အစုံကို ဒီေအာက္မွာ ျပန္ေရးေပး လိုက္ပါတယ္။
#error_reporting(E_ALL);
//include Zend Gdata Libs
require_once("Zend/Gdata/ClientLogin.php");
require_once("Zend/Gdata/HttpClient.php");
require_once("Zend/Gdata/YouTube.php");
require_once("Zend/Gdata/App/MediaFileSource.php");
require_once("Zend/Gdata/App/HttpException.php");
require_once('Zend/Uri/Http.php');
//yt account info
$yt_user = '';//youtube username or gmail account
$yt_pw = ''; //account password
$yt_source = ''; //name of application (can be anything)
//video path $video_url = '/full/path/to/video';
//yt dev key
$yt_api_key = ''; //your youtube developer key
//login in to YT
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient( $username = $yt_user, $password = $yt_pw, $service = 'youtube', $client = null, $source = $yt_source,
// a short string identifying your application
$loginToken = null, $loginCaptcha = null, $authenticationURL);
$yt = new Zend_Gdata_YouTube($httpClient, $yt_source, NULL, $yt_api_key);
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$filesource = $yt->newMediaFileSource($video_url);
$filesource->setContentType('video/quicktime'); //make sure to set the proper content type.
$filesource->setSlug('mytestmovie.mov');
$myVideoEntry->setMediaSource($filesource);
$myVideoEntry->setVideoTitle('My Test Movie');
$myVideoEntry->setVideoDescription('My Test Movie'); // Note that category must be a valid YouTube category !
$myVideoEntry->setVideoCategory('Comedy'); // Set keywords, note that this must be a comma separated string // and that each keyword cannot contain whitespace
$myVideoEntry->SetVideoTags('cars, funny'); // Upload URI for the currently authenticated user
$uploadUrl = "http://uploads.gdata.youtube.com/feeds/users/$yt_user/uploads"; // Try to upload the video, catching a Zend_Gdata_App_HttpException
// if availableor just a regular Zend_Gdata_App_Exception
try {
$newEntry = $yt->insertEntry($myVideoEntry, $uploadUrl, 'Zend_Gdata_YouTube_VideoEntry');
} catch (Zend_Gdata_App_HttpException $httpException) {
echo $httpException->getRawResponseBody();
} catch (Zend_Gdata_App_Exception $e) {
echo $e->getMessage();
} //this outputs a ton of garbage. not sure what to do with it yet.
$YoutubeID = $newEntry->getVideoId();
if($YoutubeID<>""){
echo "Your video successfully uploaded"; }
else{ echo "Uploading process fail";
}
$YoutubeID = $newEntry->getVideoId();
အားလုံးျပီးသြားရင္ေတာ့ YouTube မွာ uploading successful ျဖစ္မျဖစ္ဆိုတာကို ဒီလိုမ်ိဳး YoutubeID ကိုျပန္ယူျပီး စစ္ေပးႏိုင္ပါတယ္။
တကယ္လို႔ successfully upload ျဖစ္သြားတယ္ဆိုရင္ေတာ့ Your video successfully ဆိုတဲ့ message ကိုျမင္ရမွာျဖစ္ၿပီး Double check လုပ္ခ်င္တယ္ဆိုရင္ေတာ့ Youtube account ကို Login ၀င္ၿပီးခုနတင္လိုက္တဲ့ video ကိုျပန္စစ္ၾကည့္ႏိုင္ပါတယ္။
Uploading လုပ္ျပီးရင္ Delete ဘယ္လို လုပ္ၾကမလဲ??? ဒါကေတာ့ ေနာက္ Post တစ္ခုလာပါမယ္ ခင္ဗ်ာ။
PHP Open-Source Portfolio Content Management System
Saturday, 11 September 2010 23:06
ျပီးခဲ့ ရက္ပိုင္းတုန္းက Myanmar Tutorials မွာ Portfolio အေၾကာင္းေလးေရးထားတဲ့ Post တစ္ခုေတြ႔ လိုက္ျပီး တိုက္တိုက္ဆိုင္ဆိုင္ပဲ Smashing Magazine မွာ PHP Based Open-Source Portfolio Content Management System အေၾကာင္းေလးကို သြားေတြ႔လို႕ PHP နဲ႔ ကိုယ္ပိုင္ Portfolio လုပ္ခ်င္တဲ့ သူေတြ လုပ္ၾကည့္ႏိုင္ေအာင္ share လိုက္ပါတယ္။ ကြၽန္ေတာ္ Download လုပ္ျပီး စမ္ၾကည့္တာေတာ့ Database မလိုပဲ txt file ေတြ create လုပ္ျပီး သိမ္းတာေတြ႔ရပါတယ္။ admin panel ကိုသြားခ်င္ရင္ေတာ့ http://www.urportfolio.com/cms_admin.php လို႔သြားႏိုင္ျပီး user name: admin နဲ႔ password : test ပဲျဖစ္ပါတယ္။ ပိုျပီး အေသးစိတ္သိခ်င္ေတာ့ သူ႔ readme ေလးကို ဖတ္ၾကည့္လိုက္ပါ။
Syntax in PHP
Friday, 10 September 2010 21:34
PHP Programming Syntax က အလြန္ပဲ ရိုးရွင္းပါတယ္
<?php
ေရးခ်င္ေသာ PHP code မ်ားအားလံုးကို ေရးလို ့ရပါတယ္
?>
ေျပာရမယ္ဆိုရင္ <?php စျပီး ?> နဲ ့ပိတ္တယ္လို ့ေျပာလို ့ရပါတယ္္။
ဥပမာ html နဲ ့ php sample program ေလးတစ္ခုကို ေရးျပပါ့မယ္
<xtypo_code><html>
<body>
<?php
echo "I m here" ;
?>
</body>
</html>{/xtypo_code}
ဒီအတိုင္းေရးျပီး PHP Format နဲ ့သိမ္းျပီး Run ၾကည့္လို ့ရပါတယ္
PHP မွာ Print Out လုပ္ဖို ့ echo , print-r ဆို ျပီး ႏွစ္မ်ိဳး ရွိပါတယ္္။ အခုေတာ့ echo ကုိ ပဲ သံုးသြားပါတယ္္။ ေနာက္ပိုင္းမွာ echo နဲ ့ print_r ဘာကြာတယ္ဆိုတာ ဆက္ေရးပါမယ္
အခုေတာ့ Topic မလြဲ ခ်င္လို ့ မေရးေတာ့ပါဘူး
.
Comments in PHP
Single Line Comment ပိတ္ခ်င္တယ္ဆိုရင္ // ကို သံုးပါ
Large Comment Block ပိတ္ခ်င္ရင္ေတာ့ /* */ ကို သံုးပါ
ဥပမာ
<html>
<body>
<?php
// This is a comment.
/*
This is
A comment
block
*/
?>
</body>
</html>
Y2K38 in PHP
Tuesday, 24 August 2010 23:39
PHP မွာ ဒီ Code ေလးကို copy ကူးျပီး run ၾကည့္ရင္ ဘာေပၚမယ္ ထင္လဲ? <?php
$date = '2040-02-01';
$format = 'l d F Y H:i';
$mydate1 = strtotime($date);
echo '<p>', date($format, $mydate1), '</p>';
?>
Wednesday 1 February 2040 00:00 လို႔ေပၚမယ္ ထင္ပါသလား? ေရးရမွာ ပ်င္းရင္ေတာ့ ဒီမွာ run ၾကည့္လို႕ ရပါတယ္။ Result က ဒီလိုတဲ့ဗ်ာ။ Wednesday 31 December 1969 17:00
သူကို Y2K38 လို႔ေခၚျပီး 2038 ကေန စျပီး 1969/70 ကို ႏွစ္ေပါင္း ၇၀ ေလာက္နီးပါး ေနာက္ ျပန္ေရာက္သြားတာ ကိုေတြ႔ရမယ္။ တကယ္လို႕မ်ား ကိုယ့္ application ထဲ membership plan ေတြကို ေရာင္းတဲ့ application ဆိုရင္ေတာ့ အဲဒီေန႕မွာ expire ျဖစ္မျဖစ္ ကိုဒီအတိုင္း စစ္ရင္မွား ပါေတာ့မယ္။
Date Time ကို ျပဖို႔ 32 Bits ကိုသုံးထားတဲ့ PHP နဲ႔ တျခားေသာ programming languages ေတြအားလုံးမွာ ဒီ bug ကိုေတြ႔ ရပါမယ္။ 32 bit မွာ Date Time ေတြကို 03:14:07 UTC on 19 January 2038 ေတြအထိပဲ ရွိေနျပီး အဲဒါေက်ာ္တာနဲ႔ left-most bit က negative ျဖစ္သြားျပီး 1969/70 ကိုျပန္ေရာက္ သြားတာ ျဖစ္ပါတယ္။ <?
တကယ္လို႕ 64 bit OS ေပၚမွာ တင္ထားျပီး PHP ကလဲ 64 bit edition ဆိုရင္ေတာ့ ဒီ bug မေပၚႏိုင္ဘူးလို႕ ဆိုပါတယ္။ Coding ထဲက safe ျဖစ္ေအာင္လုပ္ ခ်င္ရင္ေတာ့ ဒီလိုေလး ေျပာင္းျပီး ေရးဖို႔လိုပါတယ္။
$date = '2040-02-01';
$format = 'l j F Y H:i';
$mydate2 = new DateTime($date);
echo '<p>', $mydate2->format($format), '</p>';
?>
Page 1 of 12
«StartPrev12345678910NextEnd»Login Form
Latest Post
Categories Table View
- Reader's Conner (133)
- PHP (48)
- Joomla CMS (46)
- Codeigniter (18)
- jQuery (12)
- iDhamma (11)
- Mobile Development (10)
- PHP & AJAX (4)
- Apache (3)
- For Mac (3)
- mySQL (2)
- DhammaDroid (1)