public function MediaInternetYouTubeHandler::validId in Media: YouTube 7.3
Same name and namespace in other branches
- 7.2 includes/MediaInternetYouTubeHandler.inc \MediaInternetYouTubeHandler::validId()
Check if a YouTube video ID is valid.
Return value
boolean TRUE if the video ID is valid, or throws a MediaInternetValidationException otherwise.
1 call to MediaInternetYouTubeHandler::validId()
1 method overrides MediaInternetYouTubeHandler::validId()
- MediaYouTubeTestHandler::validId in tests/
includes/ MediaYouTubeTestHandler.inc - Check if a YouTube video ID is valid.
File
- includes/
MediaInternetYouTubeHandler.inc, line 109 - Extends the MediaInternetBaseHandler class to handle YouTube videos.
Class
- MediaInternetYouTubeHandler
- Implementation of MediaInternetBaseHandler.
Code
public function validId($id, $type = 'v') {
$uri = file_stream_wrapper_uri_normalize('youtube://' . $type . '/' . check_plain($id));
$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);
if (!empty($data)) {
return TRUE;
}
else {
$error_data = t('Unspecific');
if (is_string($response->data)) {
$error_data = $response->data;
}
throw new MediaInternetValidationException("The YouTube video ID is invalid, video was deleted or is disabled for embedding. Error: {$error_data}");
}
}
else {
throw new Exception("Error Processing Request. (Error: {$response->code}, {$response->error})");
}
}