Using PHP, how can I get video information like title, description, thumbnail from a youtube video URL e.g.
http://www.youtube.com/watch?v=B4CRkpBGQzU
I wrote this class to display a Youtube video on our website:
Video not found, sorry" ;
function __construct ($width=640, $height=360){
$this->width=$width;
$this->height=$height;
if($this->width<220){
// minimum width
$this->width=220;
}
if($this->height<220){
// minimum height
$this->height=220;
}
}
function playVideo(){
// Default video settings:
#
# youtube_list = false
# youtube_video = false
$youtube_list = false;
$youtube_video = false;
// always check contains youtube.com or youtube.be as a reference....
if(stristr($this->video, "youtube.com")==true ||(stristr($this->video, "youtube.be") || (stristr($this->video, "youtu.be")))){
// Test if the video contains a query..
$test = (parse_url($this->video));
if(isset($test['query'])){
$testing = $test['query'];
parse_str($testing);
if(isset($v)&&(isset($list))){
// we're dealing with a play list and a selected video.
$test = $list;
$youtube_list = true;
}
if(isset($list) &&(empty($v))){
// we're only dealing wih a play list.
$test = $list;
$youtube_list = true;
$test = $list;
}
if(isset($v) &&(empty($list))){
// we're only dealing with a single video.
$test = $v;
$youtube_video = true;
}
if(empty($v) &&(empty($list))){
// we're not dealing with a valid request.
$youtube_video = false;
}
} else {
// Apperently we're dealing with a shared link.
$testing =parse_url($this->video, PHP_URL_PATH);
$test = stristr($testing, "/");
$test = substr($test,1);
$youtube_video = true;
}
if($youtube_video==true){
// Display a single video
$play ='';
}
if($youtube_list==true){
// Display a video play list.
$youtube_video = true;
$play = '';
}
if($youtube_video == false){
// We are unable to determine the video.
$play = $this->error;
}
} else {
// This is not a valid youtube requeust
$play = $this->error;
}
// Return the results
return $this->playVideo=$play;
}
}
And this is how you can use the class:
video = "http://www.youtube.com/playlist?list=PL6F5E9FD99326F98C";
$youtube = $video->playVideo();
echo $youtube . "
";
// 1 video
$video->video="http://www.youtube.com/watch?v=uTA5bLxfvwo";
$youtube = $video->playVideo();
echo $youtube;
// shared link
echo "
";
$video = new YouTube(420,315);
$video->video="http://youtu.be/VRl2XFJ_tg4";
$youtube = $video->playVideo();
echo $youtube;
// invalid request
$video->video = "http://wrongvideo.com?nothere";
// Your own error message
$video->error ="
Video not found :-(
" ;
$youtube = $video->playVideo();
echo $youtube;
?>
demo page: http://www.heathernova.us/youtube.php
TTFN Cynthia Fridsma