Skip to content

Instantly share code, notes, and snippets.

@Kcko
Last active August 29, 2015 14:05
Show Gist options
  • Save Kcko/f23eec2bc3fefa2a92c6 to your computer and use it in GitHub Desktop.
Save Kcko/f23eec2bc3fefa2a92c6 to your computer and use it in GitHub Desktop.
Youtube parser videa ( get info )
<?
//The Youtube's API url
define('YT_API_URL', 'http://gdata.youtube.com/feeds/api/videos?q=');
//Change below the video id.
$video_id = '66Wi3isw3NY';
//Using cURL php extension to make the request to youtube API
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, YT_API_URL . $video_id);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//$feed holds a rss feed xml returned by youtube API
$feed = curl_exec($ch);
curl_close($ch);
//Using SimpleXML to parse youtube's feed
$xml = simplexml_load_string($feed);
$entry = $xml->entry[0];
//If no entry whas found, then youtube didn't find any video with specified id
if(!$entry) exit('Error: no video with id "' . $video_id . '" whas found. Please specify the id of a existing video.');
$media = $entry->children('media', true);
$group = $media->group;
$title = $group->title;//$title: The video title
$desc = $group->description;//$desc: The video description
$vid_keywords = $group->keywords;//$vid_keywords: The video keywords
$thumb = $group->thumbnail[0];//There are 4 thumbnails, the first one (index 0) is the largest.
//$thumb_url: the url of the thumbnail. $thumb_width: thumbnail width in pixels.
//$thumb_height: thumbnail height in pixels. $thumb_time: thumbnail time in the video
list($thumb_url, $thumb_width, $thumb_height, $thumb_time) = $thumb->attributes();
$content_attributes = $group->content->attributes();
//$vid_duration: the duration of the video in seconds. Ex.: 192.
$vid_duration = $content_attributes['duration'];
//$duration_formatted: the duration of the video formatted in "mm:ss". Ex.:01:54
$duration_formatted = str_pad(floor($vid_duration/60), 2, '0', STR_PAD_LEFT) . ':' . str_pad($vid_duration%60, 2, '0', STR_PAD_LEFT);
//echoing the variables for testing purposes:
echo 'title: ' . $title . '<br />';
echo 'desc: ' . $desc . '<br />';
echo 'video keywords: ' . $vid_keywords . '<br />';
echo 'thumbnail url: ' . $thumb_url . '<br />';
echo 'thumbnail width: ' . $thumb_width . '<br />';
echo 'thumbnail height: ' . $thumb_height . '<br />';
echo 'thumbnail time: ' . $thumb_time . '<br />';
echo 'video duration: ' . $vid_duration . '<br />';
echo 'video duration formatted: ' . $duration_formatted;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment