Получить ID видео из ссылки youtube
Мы знаем, что идентификатор видео имеет длину 11 символов и ему может предшествовать v=
или vi=
илиv/
или vi/
или youtu.be/
.
Так же у меня это может быть ссылка и не с youtube, это нужно проверить...
И ещё, картинки генерируются разного качества и размера.
Сборный вариант собранный из разных источников
if (stripos($url, 'youtu') !== false) {
if (preg_match('#(?<=v=|v\/|vi=|vi\/|youtu.be\/)[a-zA-Z0-9_-]{11}#', $url, $videoId)) {
//echo $videoId[0]; // - ID видео
$imgSrc = '//i1.ytimg.com/vi/' . $videoId[0] . '/' . $size . '.jpg';
echo '<img src="' . $imgSrc . '" >';
}
}
$size
, в зависимости от выбора в админке, принимает следующие значения:
- mqdefault
- hqdefault
- sddefault
- maxresdefault
Ссылки и благодарности
- https://stackoverflow.com/questions/3392993/php-regex-to-get-youtube-video-id/25290026#25290026
- http://qaru.site/questions/7329/php-regex-to-get-youtube-video-id/54143#54143
- https://ru.stackoverflow.com/a/80407
- http://www.cyberforum.ru/post2464952.html