Задать вопрос
thehighhomie
@thehighhomie

Как проверить существование видео youtube?

Как проверить существование видео youtube?

Например есть поле ввода для ссылки, пользователь вводит и нажимает добавить, и если видео существует то вставлять видео на страницу а если нет то ошибку в модалке.

Я примерно придумал как это сделать но я не знаю и не могу найти проверку на наличие видео, то есть обязательно нужны модалки если видео не существует, ведь пользователь может ввести какое-нибудь "sdkhgefoherohoe" или просто ошибется ссылкой. Ну и это тоже можно более менее проконтролировать, искать в строке айдишник видео и доставать его, но и тут у меня не получается ничего с ним сделать, не могу найти инструкцию в апи для проверки.

Например при успешном запуске видео срабатывает событие onReady а событий при ошибке я не нашел, onError к примеру не работает, ну в общем я сдался в самостоятельных поисках решения(

Может это можно проще как нибудь сделать и если вообще можно, подскажите пожалуйста.
  • Вопрос задан
  • 737 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
v_decadence
@v_decadence
Со StackOverflow:
$video_url = https://www.youtube.com/oembed?format=json&url=http://www.youtube.com/watch?v=VideoId

$video_url = @file_get_contents($video_url);
if($video_url) {
    echo('video exists');
} else {
    echo('video does not exists');
};
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mupic
Если совсем не хочется работать с api youtube, то можно сделать небольшой "хак" на проверку миниатюры видео. "Хак" довольно посредственный, если вдруг на youtube изменится размер заглушки или еще чего, то нужно будет заново править код.

var img = new Image();  
img.onload = function(){
    if(img.naturalWidth == 120) //120 - ширина заглушки миниатюры видео
		alert('video not working');
};
img.src = 'https://img.youtube.com/vi/HQpB2PZnZzo1/mqdefault.jpg';  //подгружаем миниатюру видео большого размера


Пользоваться не советую.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы