Breadcrumbs

Получить 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