/** * Generate Download Code * * Create code to allow a YouTube video to be downloaded * * @package Artiss-YouTube-Embed * @since 2.0 * * @uses aye_extract_id Extract an ID from a string * @uses aye_validate_id Confirm the type of video * @uses aye_error Display an error * * @param string $id YouTube video ID * @param string $target Link target * @param string $nofollow Use rel="nofollow" ? * @param string $text Text to add link to * @return string URL */ function aye_generate_download_code($id) { if ($id == '') { return aye_error(__('No YouTube ID was found.', 'youtube-embed')); } // Extract the ID if a full URL has been specified $id = aye_extract_id($id); // Check what type of video it is and whether it's valid $embed_type = aye_validate_id($id); if ($embed_type != 'v') { if (strlen($embed_type) > 1) { return aye_error($embed_type); } else { return aye_error(sprintf(__('The YouTube ID of %s is invalid.', 'youtube-embed'), $id)); } } // Create the link return 'http://deturl.com/www.youtube.com/watch?' . $embed_type . '=' . $id; }
/** * Generate video short URL * * Create a short URL to a YouTube video * * @package Artiss-YouTube-Embed * @since 2.0 * * @uses aye_extract_id Extract an ID from a string * @uses aye_validate_id Confirm the type of video * @uses aye_error Display an error * * @param string $id YouTube video ID * @return string $youtube_code Code */ function aye_generate_shorturl_code($id) { // Check that an ID has been specified if ($id == '') { return aye_error(__('No video ID has been supplied', 'youtube-embed')); } else { // Extract the ID if a full URL has been specified $id = aye_extract_id($id); // Check what type of video it is and whether it's valid $embed_type = aye_validate_id($id); if ($embed_type != 'v') { if (strlen($embed_type) > 1) { return aye_error($embed_type); } else { return aye_error(sprintf(__('The YouTube ID of %s is invalid.', 'youtube-embed'), $id)); } } return 'http://youtu.be/' . $id; } }
/** * Get playlist download link * * Return YouTube playlist download URL * No longer found to work, so simply reports an error now * * @deprecated 2.0 Use youtube_short_url() instead. * @since 2.0 * * @uses ye_error Display an error * * @param string $id Video ID */ function get_playlist_download($id = '') { echo aye_error(__('This function does not support playlists', 'youtube-embed')); return; }
/** * Generate Thumbnail Code * * Generate XHTML compatible YouTube video thumbnail * * @package Artiss-YouTube-Embed * @since 2.0 * * @uses aye_extract_id Extract an ID from a string * @uses aye_validate_id Confirm the type of video * @uses aye_error Display an error * * @param string $id YouTube video ID * @param string $style Link STYLE * @param string $class Link CLASS * @param string $rel Link REL * @param string $target Link target * @param string $width Width * @param string $height Height * @param string $alt ALT text * @param string $version Thumbnail version * @param string $nolink True or False, whether no link should be added * @return string $youtube_code Code */ function aye_generate_thumbnail_code($id, $style, $class, $rel, $target, $width, $height, $alt, $version, $nolink = false) { // Extract the ID if a full URL has been specified $id = aye_extract_id($id); // Check what type of video it is and whether it's valid $embed_type = aye_validate_id($id); if ($embed_type != 'v') { if (strlen($embed_type) > 1) { return aye_error($embed_type); } else { return aye_error(sprintf(__('The YouTube ID of %s is invalid.', 'youtube-embed'), $id)); } } $version = strtolower($version); if ($version != 'default' && $version != 'hq' && $version != 'start' && $version != 'middle' && $version != 'end') { $version = 'default'; } if ($version == 'hq') { $version = 'hqdefault'; } if ($version == 'start') { $version = 1; } if ($version == 'middle') { $version = 2; } if ($version == 'end') { $version = 3; } // Now create the required code if ($alt == '') { $alt = sprintf(__('YouTube Video %s'), $id); } if (!$nolink) { $youtube_code = '<a href="http://www.youtube.com/watch?v=' . $id . '"'; if ($style != '') { $youtube_code .= ' style="' . $style . '"'; } if ($class != '') { $youtube_code .= ' class="' . $class . '"'; } if ($rel != '') { $youtube_code .= ' rel="' . $rel . '"'; } if ($target != '') { $youtube_code .= ' target="' . $target . '"'; } $youtube_code .= '>'; } $youtube_code .= '<img src="http://img.youtube.com/vi/' . $id . '/' . $version . '.jpg"'; if ($width != '') { $youtube_code .= ' width="' . $width . 'px"'; } if ($height != '') { $youtube_code .= ' height="' . $height . 'px"'; } $youtube_code .= ' alt="' . $alt . '"/>'; if (!$nolink) { $youtube_code .= '</a>'; } return $youtube_code; }
/** * Get Video Name * * Function to return the name of a YouTube video * * @since 2.0 * * @uses aye_extract_id Extract the video ID * @uses aye_validate_id Get the name and video type * @uses aye_error Return an error * * @param string $id Video ID * @return string Video name */ function get_youtube_name($id) { // Extract the ID if a full URL has been specified $id = aye_extract_id($id); // Check what type of video it is and whether it's valid $return = aye_validate_id($id, true); $embed_type = $return['type']; if (strlen($embed_type) > 1) { echo aye_error($embed_type); } else { echo aye_error(sprintf(__('The YouTube ID of %s is invalid.', 'youtube-embed'), $id)); } // Return the video title return $return['title']; }
/** * Get YouTube Transcript * * Generate re-encoded YouTube transcript * * @since 2.0 * * @uses aye_extract_id Extract the ID * @uses aye_get_file Get a file * @uses aye_set_general_defaults Set default options * @uses aye_validate_id Validate the ID * * @param string $id Video ID * @return string $output Transcript output */ function aye_generate_transcript($id) { // Extract the ID if a full URL has been specified $id = aye_extract_id($id); // Check what type of video it is and whether it's valid $embed_type = aye_validate_id($id); if ($embed_type != 'v') { if (strlen($embed_type) > 1) { return aye_error($embed_type); } else { return aye_error(sprintf(__('The YouTube ID of %s is invalid.', 'youtube-embed'), $id)); } } // Get general options $general = aye_set_general_defaults(); // Check to see if cache is available if ($general['transcript_cache'] != 0) { $cache_key = 'aye_transcript_' . $id; $output = get_transient($cache_key); if ($output !== false) { return $output; } } // Get transcript file $return = aye_get_file('http://video.google.com/timedtext?lang=en&v=' . $id); $xml = $return['file']; $output = ''; // If transcript file exists, strip and output if ($return['rc'] == 0) { $output = "<!-- YouTube Embed v" . youtube_embed_version . " | http://www.artiss.co.uk/youtube-embed -->\n"; $pos = 0; $eof = false; while (!$eof) { $text_start = strpos($xml, '<text ', $pos); if ($text_start !== false) { // Extract the start time $start_start = strpos($xml, 'start="', $text_start) + 7; $start_end = strpos($xml, '"', $start_start) - 1; $start = substr($xml, $start_start, $start_end - $start_start + 1); // Convert time format $start = str_pad(floor($start), 3, '0', STR_PAD_LEFT); $start = substr($start, 0, -2) . ':' . substr($start, -2, 2); // Now extract the text $text_start = strpos($xml, '>', $text_start) + 1; $text_end = strpos($xml, '</text>', $text_start) - 1; $text = substr($xml, $text_start, $text_end - $text_start + 1); // Now return the output $output .= "<div class=\"Transcript\"><span class=\"TranscriptTime\">" . $start . "</span> <span class=\"TranscriptText\">" . htmlspecialchars_decode($text) . "</span></div>\n"; $pos = $text_end + 7; } else { $eof = true; } } $output .= "<!-- End of YouTube Embed code -->\n"; } // Save the cache if ($general['transcript_cache'] != 0) { set_transient($cache_key, $output, 3600 * $general['transcript_cache']); } return $output; }
/** * Generate embed code * * Generate XHTML compatible YouTube embed code * * @since 2.0 * * @uses aye_error Display an error * @uses aye_extract_id Get the video ID * @uses aye_validate_list Get the requested listr * @uses aye_validate_id Validate the video ID * @uses aye_validate_profile Get the requested profile * @uses aye_set_general_defaults Get general options * @uses aye_set_profile_defaults Set default profile options * * @param string $id Video ID * @param string $type Embed type * @param string $width Video width * @param string $height Video height * @param string $fullscreen Fullscreen button * @param string $related Show related info. * @param string $autoplay Start video automatically * @param string $loop Loop video to start * @param string $start Start in seconds * @param string $info Show video info. * @param string $annotation Annotations * @param string $cc Closed captions * @param string $style Stylesheet information * @param string $link Link back to YouTube * @param string $react Show EmbedPlus reactions * @param string $stop Stop in seconds * @param string $sweetspot Show EmbedPlus sweetspots * @param string $disablekb Disable keyboard controls * @param string $ratio Video size ratio * @param string $autohide Autohide controls * @param string $controls Display controls * @param string $profile Which profile to use * @param string $list_style How to use a list, if used * @param string $audio Only show controls, for audio playback * @param string $template Display template * @param string $hd Use HD, if available * @param string $color Progress bar colour * @param string $theme Use dark or light theme * @param string $https Use HTTPS for links * @param string $dynamic Show dynamic output * @param string $search Perform a search * @param string $user Look up user videos * @return string Code output */ function aye_generate_youtube_code($id = '', $type = '', $width = '', $height = '', $fullscreen = '', $related = '', $autoplay = '', $loop = '', $start = '', $info = '', $annotation = '', $cc = '', $style = '', $link = '', $react = '', $stop = '', $sweetspot = '', $disablekb = '', $ratio = '', $autohide = '', $controls = '', $profile = '', $list_style = '', $audio = '', $template = '', $hd = '', $color = '', $theme = '', $https = '', $dynamic = '', $search = '', $user = '') { // Ensure an ID is passed if ($id == '') { return aye_error(__('No video/playlist ID has been supplied', 'youtube-embed')); } // Get general options $general = aye_set_general_defaults(); // Find the profile, if one is specified $profile = aye_validate_profile($profile, $general['profile_no']); // Get default values if no values are supplied $options = aye_set_profile_defaults($profile); // If a user look-up or search has been requested, mis-out looking up list details and // simple assign it as an IFRAME video if ($user == 0 && $search == 0) { // Check it's not a list $playlist_ids = ''; $list = aye_validate_list($id, $general['list_no']); if (!is_array($list)) { // Check if certain parameters are included in the URL $width = aye_get_url_para($id, 'w', $width); $height = aye_get_url_para($id, 'h', $height); // Extract the ID if a full URL has been specified $id = aye_extract_id($id); // Is it being previewed? In which case remove any cache if (preg_match('/p=([0-9]*)&preview=true/', $_SERVER['QUERY_STRING']) == 1 && $general['preview'] == 1) { delete_transient('aye_type_' . $id); delete_transient('aye_title_' . $id); } // Check what type of video it is and whether it's valid $return = aye_validate_id($id, true); $embed_type = $return['type']; // If the video is invalid, output an appropriate error if ($embed_type == '' or strlen($embed_type) != 1) { if ($embed_type == '') { $error = sprintf(__('The YouTube ID of %s is invalid.', 'youtube-embed'), $id); } else { $error = $embed_type; } $result = "\n<!-- YouTube Embed v" . youtube_embed_version . " | http://www.artiss.co.uk/youtube-embed -->\n"; $result .= "<!-- " . $error . " -->\n" . aye_decode($general['error_message']) . "\n<!-- End of YouTube Embed code -->\n"; return $result; } } else { $return = ''; $embed_type = 'v'; // Randomize the video if ($list_style == 'random') { shuffle($list); } // Extract one video randomly if ($list_style == 'single') { $id = $list[array_rand($list, 1)]; // Build the playlist } else { $id = $list[0]; // Build the playlist if (count($list) > 1) { $loop = 1; while ($loop < count($list)) { if ($playlist_ids != '') { $playlist_ids .= ','; } $list_id = aye_extract_id($list[$loop]); $playlist_ids .= $list_id; $loop++; } } } } } // Generate a cache key for the above passed parameters $cache_key = 'aye_video_' . md5($id . $type . $width . $height . $fullscreen . $related . $autoplay . $loop . $start . $info . $annotation . $cc . $style . $link . $react . $stop . $sweetspot . $disablekb . $ratio . $autohide . $controls . $profile . $list_style . $audio . $template . $hd . $color . $theme . $https . $dynamic . $search . $user . serialize($general) . serialize($options) . serialize($list) . serialize($return)); // Try and get the output from cache. If it exists, return the code if ($general['embed_cache'] != 0 && !is_feed() && $list_style != 'random') { $result = get_transient($cache_key); if ($result !== false) { return $result; } } $metadata = $general['metadata']; // Work out correct protocol to use - HTTP or HTTPS if ($https == '') { $https = $options['https']; } if ($https == 1) { $https = 's'; } else { $https = ''; } // If this is a feed then display a thumbnail and/or text link to the original video if (is_feed()) { $result = ''; if ($playlist_ids != '') { $result .= '<p>' . __('A video list cannot be viewed within this feed - please view the original content', 'youtube-embed') . ".</p>\n"; } else { $youtube_url = 'http' . $https . '://www.youtube.com/watch?' . $embed_type . '=' . $id; if ($embed_type == 'v' && $general['feed'] != 't') { $result .= '<p><a href="' . $youtube_url . '"><img src="http://img.youtube.com/vi/' . $id . '/' . $general['thumbnail'] . ".jpg\"></a></p>\n"; } if ($general['feed'] != 'v' or $embed_type != 'v') { $result .= '<p><a href="' . $youtube_url . '">' . __('Click here to view the video on YouTube', 'youtube-embed') . "</a>.</p>\n"; } } return $result; } // If a dynamic size has been requested, check whether the width should be fixed $fixed = 0; if ($dynamic == '') { $dynamic = $options['dynamic']; $fixed = $options['fixed']; } else { if ($width != '') { $fixed = 1; } } // Only set width and height from defaults if both are missing if ($width == '' && $height == '') { $width = $options['width']; $height = $options['height']; } // If controls parameter is not numeric then convert to 0 or 1 // This is to maintain backwards compatibility after version 2.6 if (!is_numeric($controls) && $controls != '') { $controls = aye_convert($controls); } // If values have not been pressed, use the default values if ($fullscreen == '') { $fullscreen = $options['fullscreen']; } if ($related == '') { $related = $options['related']; } if ($autoplay == '') { $autoplay = $options['autoplay']; } if ($loop == '') { $loop = $options['loop']; } if ($info == '') { $info = $options['info']; } if ($annotation == '') { $annotation = $options['annotation']; } if ($cc == '') { $cc = $options['cc']; } if ($link == '') { $link = $options['link']; } if ($react == '') { $react = $options['react']; } if ($sweetspot == '') { $sweetspot = $options['sweetspot']; } if ($disablekb == '') { $disablekb = $options['disablekb']; } if ($autohide == '') { $autohide = $options['autohide']; } if ($controls == '') { $controls = $options['controls']; } if ($audio == '') { $audio = $options['audio']; } if ($hd == '') { $hd = $options['hd']; } if ($style == '') { $style = $options['style']; } if ($color == '') { $color = $options['color']; } if ($theme == '') { $theme = $options['theme']; } $wmode = $options['wmode']; if ($theme == '') { $theme = $options['theme']; } // Build the required template if ($template == '') { $template = $options['template']; } else { $template = aye_decode($template); } if (strpos($template, '%video%') === false) { $template = '%video%'; } // If a multi-play list has been specified and EmbedPlus selected, use fallback embedding method instead if ($playlist_ids != '' && $type == 'm' && $list_style != 'single') { $type = $options['fallback']; } // If looping and no playlist has been generated, add the current ID // This is a workaround for the AS3 player which won't otherwise loop if ($loop == 1 && $embed_type != 'p' && $playlist_ids == '') { $playlist_ids = $id; } // If no type was specified, depending on whether this is a video or playlist, set the specific default if ($type == '') { if ($embed_type == 'v') { $type = $options['type']; } else { $type = $options['playlist']; } } // If a playlist, user or search was specified and this is is Chromeless, switch back to IFRAME to allow if (($embed_type == 'p' or $user != 0 or $search != 0) && $type == 'c') { $type = 'v'; } // Set parameters without default values if ($start == '') { $start = '0'; } if ($stop == '') { $stop = '0'; } // If height or width is missing, calculate missing parameter using ratio if (($width == '' or $height == '') && ($width != '' or $height != '')) { $ratio_to_use = ''; if ($ratio != '') { // Extract the ratio from the provided string $pos = strpos($ratio, ':', 0); if ($pos !== false) { $ratio_l = substr($ratio, 0, $pos); $ratio_r = substr($ratio, $pos + 1); if (is_numeric($ratio_l) && is_numeric($ratio_r)) { $ratio_to_use = $ratio_l / $ratio_r; } } } // If no, or invalid, ratio supplied, calculate from the default video dimensions if ($ratio_to_use == '') { $ratio_to_use = $options['width'] / $options['height']; } // Complete the missing width or height using the ratio if ($width == '') { $width = round($height * $ratio_to_use, 0); } if ($height == '') { $height = round($width / $ratio_to_use, 0); } } // Set Frameborder output $frameborder = ''; if (isset($general['frameborder'])) { if ($general['frameborder'] == 1) { $frameborder = 'frameborder="0" '; } } // If audio playback option is set, restrict the height to just show the player toolbar if ($audio == '1') { $height = 27; } // Set up embed types $tab = ''; $class = 'youtube-player'; $paras = ''; $embedplus = false; $swf = false; $iframe = false; $chromeless = false; if ($type == 'm' && ($user != 0 or $search != 0)) { $type = $options['fallback']; } if ($type != 'v') { if ($type == 'm') { $embedplus = true; $tab = "\t"; $embedheight = $height + 32; $class = 'cantembedplus'; $fallback = $options['fallback']; } else { if ($type == "c") { $chromeless = true; } else { $swf = true; } } $paras .= '&version=3'; } else { $iframe = true; } // Generate parameters to add to URL if ($options['modest'] == 1) { $paras .= '&modestbranding=1'; } if ($fullscreen == 1) { $paras .= '&fs=1'; } else { $paras .= '&fs=0'; } if ($related != 1) { $paras .= '&rel=0'; } if ($autoplay == 1) { $paras .= '&autoplay=1'; $paras_ep .= '&autoplay=1'; } if ($loop == 1) { $paras .= '&loop=1'; } if ($info != 1) { $paras .= '&showinfo=0'; } if ($annotation != 1) { $paras .= '&iv_load_policy=3'; } if ($cc == 1) { $paras .= '&cc_load_policy=1'; } if ($disablekb == 1) { $paras .= '&disablekb=1'; } if ($autohide != 2) { $paras .= '&autohide=' . $autohide; } if ($controls != 1) { $paras .= '&controls=' . $controls; } if (strtolower($color) != 'red') { $paras .= '&color=' . strtolower($color); } if (strtolower($theme) != 'dark') { $paras .= '&theme=' . strtolower($theme); } // If not a playlist, add the playlist parameter if ($playlist_ids != '') { $paras .= '&playlist=' . $playlist_ids; } // Generate EmbedPlus parameters $paras_ep = '&width=' . $width . '&height=' . $height; if ($react != 1) { $paras_ep .= '&react=0'; } if ($sweetspot != 1) { $paras_ep .= '&sweetspot=0'; } if ($hd == 1) { $paras_ep .= '&hd=1'; } // Add start & stop parameters if ($start != 0) { $paras .= '&start=' . $start; $paras_ep .= '&start=' . $start; } if ($stop != 0) { $paras_ep .= '&stop=' . $stop; $paras .= '&end=' . $stop; } // Generate DIVs to wrap around video if ($dynamic == 1) { $result = "<div class=\"ye-container\">\n"; if ($fixed == 1) { $result = '<div style="width: ' . $width . 'px; max-width: 100%">' . "\n" . $result; } } // Add EmbedPlus code if ($embedplus) { $result .= "<object type=\"application/x-shockwave-flash\" width=\"" . $width . "\" height=\"" . $embedheight . "\" data=\"http://getembedplus.com/embedplus.swf\" style=\"" . $style . "\" id=\"" . uniqid('ep_', true) . "\" >\n"; $result .= "\t<param value=\"http://getembedplus.com/embedplus.swf\" name=\"movie\" />\n"; $result .= "\t<param value=\"high\" name=\"quality\" />\n"; $result .= "\t<param value=\"" . $wmode . "\" name=\"wmode\" />\n"; $result .= "\t<param value=\"always\" name=\"allowscriptaccess\" />\n"; if ($fullscreen == 1) { $result .= "\t<param name=\"allowFullScreen\" value=\"true\" />\n"; } $result .= "\t<param name=\"flashvars\" value=\"ytid=" . $id . $paras_ep . "\" />\n"; } // Work out, depending on privacy settings, the main address to use $privacy = $general['privacy']; if ($privacy == 2) { $do_not_track = aye_do_not_track(); if ($do_not_track) { $privacy = 1; } else { $privacy = 0; } } if ($privacy == 1) { $url_privacy = 'youtube-nocookie.com'; } else { $url_privacy = 'youtube.com'; } // Generate the first part of the embed URL along with the ID section if ($chromeless) { $embed_url = 'http' . $https . '://www.youtube.com/apiplayer'; $id_paras = '?video_id=' . $id; } else { $embed_url = 'http' . $https . '://www.' . $url_privacy . '/'; if ($type == 'v') { $embed_url .= 'embed'; } else { $embed_url .= 'v/'; } $id_paras = $id; if ($type == 'v') { $id_paras = '/' . $id_paras; } } // If a playlist, user or download build the ID appropriately if ($embed_type == 'p' or $user != 0 or $search != 0) { $list_type = ''; if ($embed_type == 'p') { $list_type = 'playlist'; } if ($user != 0) { $list_type = 'user_uploads'; } if ($search != 0) { $list_type = 'search'; $id = urlencode($id); } $id_paras = ''; if ($type == 'p') { $id_paras .= 'videoseries'; } $id_paras .= '?listType=' . $list_type . '&list='; if ($embed_type == 'p' && strtolower(substr($id, 0, 2)) != 'pl') { $id_paras .= 'PL'; } $id_paras .= $id; } // Combine URL parts together $embed_url .= $id_paras; if (!strpos($embed_url, '?') && substr($paras, 0, 5) == '&') { $paras = '?' . substr($paras, 5); } $embed_url .= $paras; // Add AS3 YouTube embed code if ($swf or $chromeless or $embedplus && ($fallback == 'o' or $fallback == 'p')) { $result .= $tab . "<object class=\"" . $class . "\" type=\"application/x-shockwave-flash\" data=\"" . $embed_url . "\" width=\"" . $width . "\" height=\"" . $height . "\" style=\"" . $style . "\""; if ($metadata != 0) { $result .= " rel=\"media:video\" resource=\"http" . $https . "://www.youtube.com/" . $embed_type . "/" . $id . "\" xmlns:media=\"http://search.yahoo.com/searchmonkey/media/\""; } $result .= " >\n"; if ($metadata != 0) { $result .= $tab . "\t<a rel=\"media:thumbnail\" href=\"http://img.youtube.com/vi/" . $id . "/default.jpg\" /></a>\n"; } $result .= $tab . "\t<param name=\"movie\" value=\"" . $embed_url . "\" />\n"; $result .= $tab . "\t<param name=\"wmode\" value=\"" . $wmode . "\" />\n"; if ($fullscreen == 1) { $result .= $tab . "\t<param name=\"allowFullScreen\" value=\"true\" />\n"; } if ($link != 1 && $link != '') { $result .= $tab . "\t<param name=\"allowNetworking\" value=\"internal\" />\n"; } if ($metadata != 0 && $return['title'] != '') { $result .= $tab . "\t<span property=\"media:title\" content=\"" . htmlentities($return['title']) . "\" />\n"; } $result .= $tab . "</object>\n"; } // Add IFRAME embed code if ($iframe or $embedplus && $fallback == "v") { if ($embed_type == "p") { $playlist_para = "p/"; } else { $playlist_para = ''; } $result .= $tab . '<iframe ' . $frameborder . 'style="border: 0;' . $style . '" class="' . $class . '" width="' . $width . '" height="' . $height . '" src="' . $embed_url . '&wmode=' . $wmode . '"'; if ($fullscreen == 1) { $result .= ' allowfullscreen="allowfullscreen"'; } $result .= " ></iframe>\n"; } // If using EmbedPlus, add the OBJECT closure tag if ($embedplus) { $result .= "</object>\n<!--[if lte IE 6]> <style type=\"text/css\">.cantembedplus{display:none;}</style><![endif]-->\n"; } // Now apply the template to the result $end_tag = ''; if ($dynamic == 1) { $end_tag .= "</div>\n"; if ($fixed == 1) { $end_tag .= "</div>\n"; } } $result = str_replace('%video%', $result . $end_tag, $template); // Now add a commented header and trailer $result = "\n<!-- YouTube Embed v" . youtube_embed_version . " | http://www.artiss.co.uk/youtube-embed -->\n" . $result; $result .= "<!-- End of YouTube Embed code -->\n"; // Cache the output if ($general['embed_cache'] != 0) { set_transient($cache_key, $result, 3600 * $general['embed_cache']); } return $result; }
/** * Video Name Shortcode * * Shortcode to return the name of a YouTube video * * @since 2.0 * * @uses aye_extract_id Extract the video ID * @uses aye_validate_id Get the name and video type * @uses aye_error Return an error * * @param string $paras Shortcode parameters * @param string $content Shortcode content * @return string Video name */ function aye_video_name_shortcode($paras = '', $content = '') { // Extract the ID if a full URL has been specified $id = aye_extract_id($content); // Check what type of video it is and whether it's valid $return = aye_validate_id($id, true); if (!$return['type']) { return aye_error(sprintf(__('The YouTube ID of %s is invalid.', 'youtube-embed'), $id)); } if (strlen($return['type']) != 1) { return aye_error($return['type']); } // Return the video title return do_shortcode($return['title']); }