diff --git a/youtube.inc b/youtube.inc index 2096287..34a656c 100644 --- a/youtube.inc +++ b/youtube.inc @@ -99,3 +99,16 @@ function youtube_build_remote_image_path($id = NULL) { return url($default); } + +/** + * Returns the title of the remote YouTube video. + */ +function youtube_get_remote_video_title($video_id) { + $video_json = file_get_contents('http://gdata.youtube.com/feeds/api/videos/' . $video_id . '?v=2&alt=json'); + if ($video_json === FALSE) { + return FALSE; + } + $video_data = drupal_json_decode($video_json); + $video_title = $video_data['entry']['title']['$t']; + return $video_title; +} diff --git a/youtube.module b/youtube.module index 24746ab..dce9dd2 100644 --- a/youtube.module +++ b/youtube.module @@ -61,6 +61,12 @@ function youtube_settings_form($form) { '#title' => t('Show suggested videos when the video finishes'), '#default_value' => variable_get('youtube_suggest', TRUE), ); + $form['youtube_iframe_remote_title'] = array( + '#type' => 'checkbox', + '#title' => t('Assign the YouTube video\'s title as the title attribute of the embedded iframe'), + '#default_value' => variable_get('youtube_iframe_remote_title', TRUE), + '#description' => t('This requires an extra request to the YouTube API for each embedded video player. Disabling this reduces those requests and applies a default value for the iframe\'s title attribute.'), + ); $form['youtube_thumb_dir'] = array( '#type' => 'textfield', '#title' => t('YouTube thumbnail directory'), diff --git a/youtube.theme.inc b/youtube.theme.inc index 48da8a7..ad38dca 100644 --- a/youtube.theme.inc +++ b/youtube.theme.inc @@ -20,6 +20,15 @@ function theme_youtube_video($variables) { $wmode = variable_get('youtube_wmode', TRUE); $dimensions = youtube_get_dimensions($size, $width, $height); + // Provide the remote or generic video title for the player's title attribute. + $use_remote_title = variable_get('youtube_iframe_remote_title', TRUE); + if ($use_remote_title) { + $title = youtube_get_remote_video_title($id); + } + if (empty($title)) { + $title = t('Embedded YouTube video player'); + } + // Protocol changes based on current page TODO. $protocol = (isset($_SERVER['HTTPS'])) ? 'https' : 'http'; @@ -43,7 +52,7 @@ function theme_youtube_video($variables) { $output = ''; + title="' . $title . '" frameborder="0" allowfullscreen>'; return $output; }