";
print "video_id: $video_id ";
print "extra_embed_params: $extra_params ";
+ print "gdata feed: $feed ";
print "";
}
-
- /* If we have a valid youtube developer id, use that to get information about the video */
- /* Otherwise, just parse it directly from the HTML page */
- $dev_id = $youtubeDevId;
- if(!preg_match("/\w+/",$dev_id)) {
- /* No developer ID found. Proceed with direct page parsing. */
-
- /* Grab the contents of the webpage used to display the video on video.google.com */
- list ($successfullyCopied, $contents, $response, $headers) =
- GalleryCoreApi::fetchWebPage($url, $extraHeaders);
- if (!$successfullyCopied) {
- return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
- "Unable to get video information at url: $url - $response"),NULL,NULL);
- }
-
- /* Extract the summary from the webpage contents */
- preg_match('//i', $contents, $matches);
- $summary=$matches[1];
-
- /* Extract the title from the webpage contents */
- preg_match('//i', $contents, $matches);
- $title=$matches[1];
- /* Extract the thumbnail URL from the webpage contents */
- $thumbnail=$youtubeThumbnailUrl.$video_id."/default.jpg";
-
- /* Determine if the video should autoplay or not based on the autoStart parameter */
- $autoStartStr="";
- if(!strcmp($autoStart,"true")) {
- $autoStartStr="&autoplay=1";
- } else {
- $autoStartStr="&autoplay=0";
- }
-
- /* Determine if the video should show related videos or not based on the youtubeShowRelated parameter */
- $youtubeShowRelatedStr="";
- if(!strcmp($youtubeShowRelated,"false")) {
- $youtubeShowRelatedStr="&rel=0";
- } else {
- $youtubeShowRelatedStr="&rel=1";
- }
-
- /* Format the description to hold a reference to the embedded video */
- if(preg_match('/id=\"embed_code\".+?value=\'(.+?)\'/', $contents, $matches)) {
- $description=$matches[1];
- $description=preg_replace("/"/","'",$description);
- $description=preg_replace("/</","<",$description);
- $description=preg_replace("/>/",">",$description);
- $description=preg_replace("/&/","&",$description);
- $description=preg_replace("/$video_id/",$video_id.$autoStartStr.$youtubeShowRelatedStr,$description);
- $description=preg_replace("/$video_id/",$video_id.$extra_params,$description);
- if(!strcmp($useRemoteSize,"false")) {
- $description=preg_replace("/width='\d+'/","width='".$width."'",$description);
- $description=preg_replace("/height='\d+'/","height='".$height."'",$description);
- }
- } else {
- return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
- "Unable to extract embedded video information from url: $url"),NULL,NULL);
- }
-
- } else {
- /* We found a valid developer ID. Proceed with API calls. */
-
- /* Youtube api feed */
- $feed = $youtubeApiUrl.'?method=youtube.videos.get_details';
- $feed.= "&dev_id=$dev_id&video_id=$video_id";
-
- /* Get the youtube xml feed as a string data source */
- list ($successfullyCopied, $xml, $response, $headers) =
- GalleryCoreApi::fetchWebPage($feed, $extraHeaders);
- if (!$successfullyCopied) {
- return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
- "Unable to get video information at url: $url - $response"),null,null);
- }
-
- if(preg_match("/This video is private/",$xml)) {
- return array(GalleryCoreApi::error(ERROR_BAD_PARAMETER,__FILE__,__LINE__,
- "Unable to retrieve video information from youtube.".
- "You cannot embed a private youtube video: $url"),null,null);
- }
+ /* Get the youtube xml feed as a string data source */
+ list ($successfullyCopied, $xml, $response, $headers) =
+ GalleryCoreApi::fetchWebPage($feed, $extraHeaders);
+ if (!$successfullyCopied) {
+ return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
+ "Unable to get video information at url: $url - $response"),null,null);
+ }
- if(!strcmp($debugOutput,"true")) {
- print "\n
Youtube XML Dump
";
- print "$xml";
- print "";
- }
+ if(preg_match("/This video is private/",$xml)) {
+ return array(GalleryCoreApi::error(ERROR_BAD_PARAMETER,__FILE__,__LINE__,
+ "Unable to retrieve video information from youtube.".
+ "You cannot embed a private youtube video: $url"),null,null);
+ }
- /* Extract certain information from the xml feed */
- preg_match_all("/\(.+?)\<\/title\>/smi",$xml, $title);
- preg_match_all("/\(.+?)\<\/description\>/smi",$xml, $description);
- preg_match_all("/\(.+?)\<\/thumbnail_url\>/smi",$xml, $thumbnail);
+ if(!strcmp($debugOutput,"true")) {
+ print "\n
Youtube XML Dump
";
+ print "$xml";
+ print "";
+ }
- array_shift($title);
- array_shift($thumbnail);
- array_shift($description);
+ /* Extract certain information from the xml feed */
+ preg_match_all("/\(.+?)\<\/media:title\>/smi",$xml, $title);
+ preg_match_all("/\(.+?)\<\/media:description\>/smi",$xml, $description);
+ preg_match_all("/\";
+ print "summary: $summary ";
+ print "thumbnail: $thumbnail ";
+ }
- /* Determine if the video should autoplay or not based on the autoStart parameter */
- $autoStartStr="";
- if(!strcmp($autoStart,"true")) {
- $autoStartStr="&autoplay=1";
- }
+ /* Determine what our width and height should be based on our useRemoteSize parameter */
+ if(!strcmp($useRemoteSize,"true")) {
+ $width = $youtubeWidth;
+ $height = $youtubeHeight;
+ }
- /* Determine if the video should show related videos or not based on the youtubeShowRelated parameter */
- $youtubeShowRelatedStr="";
- if(!strcmp($youtubeShowRelated,"false")) {
- $youtubeShowRelatedStr="&rel=0";
- }
+ /* Determine if the video should autoplay or not based on the autoStart parameter */
+ $autoStartStr="";
+ if(!strcmp($autoStart,"true")) {
+ $autoStartStr="&autoplay=1";
+ }
- /* Format the description to hold a reference to the embedded video */
- $description = '';
+ /* Determine if the video should show related videos or not based on the youtubeShowRelated parameter */
+ $youtubeShowRelatedStr="";
+ if(!strcmp($youtubeShowRelated,"false")) {
+ $youtubeShowRelatedStr="&rel=0";
}
+
+ /* Format the description to hold a reference to the embedded video */
+ $description = '';
+
/*
**********************************
* Embed a Google Video
@@ -781,7 +728,72 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
"Unable to extract embedded video information from url: $url"),NULL,NULL);
}
-
+
+ /*
+ **********************************
+ * Embed a Vimeo Video
+ **********************************
+ */
+ } else if(preg_match("/$vimeoUrlPattern/",$url)) {
+
+ /* Make sure we can extract a docID */
+ if(preg_match("/$vimeoUrlPattern\/(.*)/",$url,$matches)) {
+ $video_id = $matches[1];
+ } else {
+ return array(GalleryCoreApi::error(ERROR_BAD_PARAMETER,__FILE__,__LINE__,
+ "Unable to extract video id from url: $url"),null,null);
+ }
+
+ /* Grab the contents of the webpage used to display the video on video.google.com */
+ list ($successfullyCopied, $contents, $response, $headers) =
+ GalleryCoreApi::fetchWebPage($url, $extraHeaders);
+ if (!$successfullyCopied) {
+ return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
+ "Unable to get video information at url: $url - $response"),NULL,NULL);
+ }
+
+ /* Extract the summary from the webpage contents */
+ preg_match('/';
+ $description.= '';
+ $description.= '';
+ $description.= '';
+ $description.= '';
+ $description.= '';
+
/*
**********************************
* Embed a remote .swf file