From: Alan J. Pippin Date: Fri, 18 Apr 2008 02:05:53 +0000 (-0600) Subject: Added support to handle &fmt=18 type options to youtube video urls X-Git-Tag: 1_1_1~7 X-Git-Url: http://git.pippins.net/embedvideo/images/%27%20.%20%24this-%3Ephpgw_js_url%20.%20%27/jscalendar/checkmark.gif?a=commitdiff_plain;h=c89207ee0c133a7176a21d0bca5d452a17977488;p=embedvideo%2F.git Added support to handle &fmt=18 type options to youtube video urls --- diff --git a/ItemAddEmbedVideo.inc b/ItemAddEmbedVideo.inc index ac3f12a..6bb160f 100644 --- a/ItemAddEmbedVideo.inc +++ b/ItemAddEmbedVideo.inc @@ -178,14 +178,33 @@ class ItemAddEmbedVideo extends ItemAddPlugin { ***************************** */ if(preg_match("/$youtubeUrlPattern/",$url)) { - + /* Make sure we can find a video_id in the URL */ - if(preg_match("/watch\?v=(.*)/",$url,$matches)) { + $extra_params = ""; + if(preg_match("/watch\?v=(.*?)(&\S+=\S+)/",$url,$matches)) { + $video_id = $matches[1]; + $extra_params = $matches[2]; + } else if (preg_match("/watch\?v=(.*)/",$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); } + + /* If extra params were given, handle them here */ + if(strcmp($extra_params,"")) { + /* Handle the HD format information */ + if(preg_match("/fmt=(\d+)/",$extra_params,$matches)) { + $extra_params="&ap=%2526fmt%3D".$matches[1]; + } + } + + if(!strcmp($debugOutput,"true")) { + print "

URL Parsing Results

"; + print "video_id: $video_id
"; + print "extra_embed_params: $extra_params
"; + 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 */ @@ -235,7 +254,8 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $description=preg_replace("/</","<",$description); $description=preg_replace("/>/",">",$description); $description=preg_replace("/&/","&",$description); - $description=preg_replace("/&rel=1/",$autoStartStr.$youtubeShowRelatedStr,$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); @@ -313,10 +333,10 @@ class ItemAddEmbedVideo extends ItemAddPlugin { /* Format the description to hold a reference to the embedded video */ $description = ''; $description.= ''; + $description.= 'value="http://www.youtube.com/v/'.$video_id.$extra_params.'">'; $description.= ''; $description.= ''; }