function MediaYouTubeStreamWrapper::getOriginalThumbnailPath in Media: YouTube 7.3
Same name and namespace in other branches
- 7 includes/MediaYouTubeStreamWrapper.inc \MediaYouTubeStreamWrapper::getOriginalThumbnailPath()
- 7.2 includes/MediaYouTubeStreamWrapper.inc \MediaYouTubeStreamWrapper::getOriginalThumbnailPath()
1 call to MediaYouTubeStreamWrapper::getOriginalThumbnailPath()
1 method overrides MediaYouTubeStreamWrapper::getOriginalThumbnailPath()
File
- includes/
MediaYouTubeStreamWrapper.inc, line 19 - Extends the MediaReadOnlyStreamWrapper class to handle YouTube videos.
Class
- MediaYouTubeStreamWrapper
- Create an instance like this: $youtube = new MediaYouTubeStreamWrapper('youtube://v/[video-code]');
Code
function getOriginalThumbnailPath() {
$parts = $this
->get_parameters();
$thumbnail_url = 'https://img.youtube.com/vi/' . check_plain($parts['v']) . "/maxresdefault.jpg";
$response = drupal_http_request($thumbnail_url);
if ($response->code == 404) {
$thumbnail_url = 'https://img.youtube.com/vi/' . check_plain($parts['v']) . "/hqdefault.jpg";
$response = drupal_http_request($thumbnail_url);
}
if (!isset($response->error)) {
return $thumbnail_url;
}
elseif ($response->code == -110) {
throw new MediaInternetValidationException("Connection timed out.");
}
elseif ($response->code == 401) {
throw new MediaInternetValidationException("Embedding has been disabled for this video.");
}
elseif ($response->code == 404) {
return "https://s.ytimg.com/yts/img/image-hh-404-vflvCykRp.png";
}
elseif ($response->code != 200) {
throw new MediaInternetValidationException("The YouTube video ID is invalid or the video was deleted.");
}
else {
$uri = file_stream_wrapper_uri_normalize('youtube://v/' . check_plain($parts['v']));
$external_url = file_create_url($uri);
$oembed_url = url('https://www.youtube.com/oembed', array(
'query' => array(
'url' => $external_url,
'format' => 'json',
),
));
$response = drupal_http_request($oembed_url);
if (!isset($response->error)) {
$data = drupal_json_decode($response->data);
return $data['thumbnail_url'];
}
else {
throw new Exception("Error Processing Request. (Error: {$response->code}, {$response->error})");
return;
}
}
}