Может ли кто-нибудь показать мне, как получить идентификатор youtube из URL-адреса независимо от того, какие другие переменные GET находятся в URL-адресе.
Используйте это видео, например: http://www.youtube.com/watch?v=C4kxS1ksqtw&feature=related
Итак, между v=
и перед следующим&
$ch=curl_init(); curl_setopt($ch, CURLOPT_URL, "http://vimeo.com/api/v2/video/$id.php"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); $hash =unserialize(curl_exec($ch)); curl_close($ch);
Ответы:
Используйте parse_url () и parse_str () .
(Вы можете использовать регулярные выражения практически для чего угодно, но в них очень легко сделать ошибку, поэтому, если есть функции PHP специально для того, что вы пытаетесь выполнить, используйте их.)
parse_url берет строку и разрезает ее на массив, содержащий кучу информации. Вы можете работать с этим массивом или указать нужный элемент в качестве второго аргумента. В данном случае нас интересует запрос, то есть
PHP_URL_QUERY
.Теперь у нас есть запрос, который есть
v=C4kxS1ksqtw&feature=relate
, но нам нужна только часть послеv=
. Для этого мы обращаемся к тому,parse_str
что в основном работает какGET
на струне. Он берет строку и создает переменные, указанные в строке. В этом случае$v
и$feature
создается. Нас только интересует$v
.На всякий случай вы не хотите просто хранить все переменные из
parse_url
в вашем пространстве имен (см. Комментарий mellowsoon). Вместо этого храните переменные как элементы массива, чтобы вы могли контролировать, какие переменные вы сохраняете, и вы не могли случайно перезаписать существующую переменную.Собирая все вместе, получаем:
<?php $url = "http://www.youtube.com/watch?v=C4kxS1ksqtw&feature=relate"; parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars ); echo $my_array_of_vars['v']; // Output: C4kxS1ksqtw ?>
Рабочий пример
Редактировать:
хе-хе - спасибо Чарльзу. Это меня рассмешило, я никогда раньше не видел цитату Завинского:
Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems.
- Джейми Завинскиисточник
parse_url()
работает под капотом), это путь.preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $url, $matches);
Это будет учитывать
Я немного улучшил его для поддержки: http://www.youtube.com/v/5xADESocujo?feature=autoshare&version=3&autohide=1&autoplay=1
Сейчас я использую следующую строку:
preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $link, $matches);
источник
#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=embed/)[^&\n]+|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#
(?<=(?:v|i)=)[a-zA-Z0-9-]+(?=&)|(?<=(?:v|i)\/)[^&\n]+|(?<=embed\/)[^"&\n]+|(?<=(?:v|i)=)[^&\n]+|(?<=youtu.be\/)[^&\n]+
rubular.com/r/M9PJYcQxRW$matches
массив дополнительной информацией, включая идентификатор видео, который был очень полезен для моего проектаНа основании комментария Бокора к ответу Энтони:
preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $url, $matches);
$matches[1]
содержит видеоСовпадения:
Не совпадает:
источник
#
в конечную группу захвата:preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?#&\"'>]+)/", $url, $matches);
Это очень легко сделать с помощью parse_str и parse_url, и, на мой взгляд, это более надежно.
Моя функция поддерживает следующие URL-адреса:
Также включает тест под функцией.
/** * Get Youtube video ID from URL * * @param string $url * @return mixed Youtube video ID or FALSE if not found */ function getYoutubeIdFromUrl($url) { $parts = parse_url($url); if(isset($parts['query'])){ parse_str($parts['query'], $qs); if(isset($qs['v'])){ return $qs['v']; }else if(isset($qs['vi'])){ return $qs['vi']; } } if(isset($parts['path'])){ $path = explode('/', trim($parts['path'], '/')); return $path[count($path)-1]; } return false; } // Test $urls = array( 'http://youtube.com/v/dQw4w9WgXcQ?feature=youtube_gdata_player', 'http://youtube.com/vi/dQw4w9WgXcQ?feature=youtube_gdata_player', 'http://youtube.com/?v=dQw4w9WgXcQ&feature=youtube_gdata_player', 'http://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=youtube_gdata_player', 'http://youtube.com/?vi=dQw4w9WgXcQ&feature=youtube_gdata_player', 'http://youtube.com/watch?v=dQw4w9WgXcQ&feature=youtube_gdata_player', 'http://youtube.com/watch?vi=dQw4w9WgXcQ&feature=youtube_gdata_player', 'http://youtu.be/dQw4w9WgXcQ?feature=youtube_gdata_player' ); foreach($urls as $url){ echo $url . ' : ' . getYoutubeIdFromUrl($url) . "\n"; }
источник
РЕШЕНИЕ Для любого типа ссылки !! :
<?php function get_youtube_id_from_url($url) { preg_match('/(http(s|):|)\/\/(www\.|)yout(.*?)\/(embed\/|watch.*?v=|)([a-z_A-Z0-9\-]{11})/i', $url, $results); return $results[6]; } echo get_youtube_id_from_url('http://www.youtube.com/watch?var1=blabla#v=GvJehZx3eQ1$var2=bla'); // or http://youtu.be/GvJehZx3eQ1 // or http://www.youtube.com/embed/GvJehZx3eQ1 // or http://www.youtu.be/GvJehZx3eQ1/blabla?xyz ?>
выходы:
GvJehZx3eQ1
источник
исправлено на основе Как проверять идентификаторы видео на YouTube?
<?php $links = [ "youtube.com/v/tFad5gHoBjY", "youtube.com/vi/tFad5gHoBjY", "youtube.com/?v=tFad5gHoBjY", "youtube.com/?vi=tFad5gHoBjY", "youtube.com/watch?v=tFad5gHoBjY", "youtube.com/watch?vi=tFad5gHoBjY", "youtu.be/tFad5gHoBjY", "http://youtu.be/qokEYBNWA_0?t=30m26s", "youtube.com/v/vidid", "youtube.com/vi/vidid", "youtube.com/?v=vidid", "youtube.com/?vi=vidid", "youtube.com/watch?v=vidid", "youtube.com/watch?vi=vidid", "youtu.be/vidid", "youtube.com/embed/vidid", "http://youtube.com/v/vidid", "http://www.youtube.com/v/vidid", "https://www.youtube.com/v/vidid", "youtube.com/watch?v=vidid&wtv=wtv", "http://www.youtube.com/watch?dev=inprogress&v=vidid&feature=related", "youtube.com/watch?v=7HCZvhRAk-M" ]; foreach($links as $link){ preg_match("#([\/|\?|&]vi?[\/|=]|youtu\.be\/|embed\/)([a-zA-Z0-9_-]+)#", $link, $matches); var_dump(end($matches)); }
источник
Мы знаем , что видео идентификатор 11 длины символов и может предшествовать
v=
илиvi=
илиv/
илиvi/
илиyoutu.be/
. Итак, самый простой способ сделать это:<?php $youtube = 'http://youtube.com/v/dQw4w9WgXcQ?feature=youtube_gdata_player http://youtube.com/vi/dQw4w9WgXcQ?feature=youtube_gdata_player http://youtube.com/?v=dQw4w9WgXcQ&feature=youtube_gdata_player http://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=youtube_gdata_player http://youtube.com/?vi=dQw4w9WgXcQ&feature=youtube_gdata_player http://youtube.com/watch?v=dQw4w9WgXcQ&feature=youtube_gdata_player http://youtube.com/watch?vi=dQw4w9WgXcQ&feature=youtube_gdata_player http://youtu.be/dQw4w9WgXcQ?feature=youtube_gdata_player'; preg_match_all("#(?<=v=|v\/|vi=|vi\/|youtu.be\/)[a-zA-Z0-9_-]{11}#", $youtube, $matches); var_dump($matches[0]);
И вывод:
array(8) { [0]=> string(11) "dQw4w9WgXcQ" [1]=> string(11) "dQw4w9WgXcQ" [2]=> string(11) "dQw4w9WgXcQ" [3]=> string(11) "dQw4w9WgXcQ" [4]=> string(11) "dQw4w9WgXcQ" [5]=> string(11) "dQw4w9WgXcQ" [6]=> string(11) "dQw4w9WgXcQ" [7]=> string(11) "dQw4w9WgXcQ" }
источник
Следующее будет работать для всех ссылок на YouTube
<?php // Here is a sample of the URLs this regex matches: (there can be more content after the given URL that will be ignored) // http://youtu.be/dQw4w9WgXcQ // http://www.youtube.com/embed/dQw4w9WgXcQ // http://www.youtube.com/watch?v=dQw4w9WgXcQ // http://www.youtube.com/?v=dQw4w9WgXcQ // http://www.youtube.com/v/dQw4w9WgXcQ // http://www.youtube.com/e/dQw4w9WgXcQ // http://www.youtube.com/user/username#p/u/11/dQw4w9WgXcQ // http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/dQw4w9WgXcQ // http://www.youtube.com/watch?feature=player_embedded&v=dQw4w9WgXcQ // http://www.youtube.com/?feature=player_embedded&v=dQw4w9WgXcQ // It also works on the youtube-nocookie.com URL with the same above options. // It will also pull the ID from the URL in an embed code (both iframe and object tags) $url = "https://www.youtube.com/watch?v=v2_MLFVdlQM"; preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match); $youtube_id = $match[1]; echo $youtube_id; ?>
источник
Для извлечения
id
в группе захвата также может использоваться следующее выражение или производное от него:(?im)\b(?:https?:\/\/)?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)\/(?:(?:\??v=?i?=?\/?)|watch\?vi?=|watch\?.*?&v=|embed\/|)([A-Z0-9_-]{11})\S*(?=\s|$)
Демо
Контрольная работа
$re = '/(?im)\b(?:https?:\/\/)?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)\/(?:(?:\??v=?i?=?\/?)|watch\?vi?=|watch\?.*?&v=|embed\/|)([A-Z0-9_-]{11})\S*(?=\s|$)/'; $str = 'http://youtube.com/v/tFad5gHoBjY https://youtube.com/vi/tFad5gHoBjY http://www.youtube.com/?v=tFad5gHoBjY http://www.youtube.com/?vi=tFad5gHoBjY https://www.youtube.com/watch?v=tFad5gHoBjY youtube.com/watch?vi=tFad5gHoBjY youtu.be/tFad5gHoBjY http://youtu.be/qokEYBNWA_0?t=30m26s youtube.com/v/7HCZvhRAk-M youtube.com/vi/7HCZvhRAk-M youtube.com/?v=7HCZvhRAk-M youtube.com/?vi=7HCZvhRAk-M youtube.com/watch?v=7HCZvhRAk-M youtube.com/watch?vi=7HCZvhRAk-M youtu.be/7HCZvhRAk-M youtube.com/embed/7HCZvhRAk-M http://youtube.com/v/7HCZvhRAk-M http://www.youtube.com/v/7HCZvhRAk-M https://www.youtube.com/v/7HCZvhRAk-M youtube.com/watch?v=7HCZvhRAk-M&wtv=wtv http://www.youtube.com/watch?dev=inprogress&v=7HCZvhRAk-M&feature=related youtube.com/watch?v=7HCZvhRAk-M http://youtube.com/v/dQw4w9WgXcQ?feature=youtube_gdata_player http://youtube.com/vi/dQw4w9WgXcQ?feature=youtube_gdata_player http://youtube.com/?v=dQw4w9WgXcQ&feature=youtube_gdata_player http://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=youtube_gdata_player http://youtube.com/?vi=dQw4w9WgXcQ&feature=youtube_gdata_player http://youtube.com/watch?v=dQw4w9WgXcQ&feature=youtube_gdata_player http://youtube.com/watch?vi=dQw4w9WgXcQ&feature=youtube_gdata_player http://youtu.be/dQw4w9WgXcQ?feature=youtube_gdata_player'; preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); var_dump($matches);
Выход
array(30) { [0]=> array(2) { [0]=> string(32) "http://youtube.com/v/tFad5gHoBjY" [1]=> string(11) "tFad5gHoBjY" } [1]=> array(2) { [0]=> string(34) "https://youtube.com/vi/tFad5gHoBjY" [1]=> string(11) "tFad5gHoBjY" } [2]=> array(2) { [0]=> string(37) "http://www.youtube.com/?v=tFad5gHoBjY" [1]=> string(11) "tFad5gHoBjY" } [3]=> array(2) { [0]=> string(38) "http://www.youtube.com/?vi=tFad5gHoBjY" [1]=> string(11) "tFad5gHoBjY" } [4]=> array(2) { [0]=> string(43) "https://www.youtube.com/watch?v=tFad5gHoBjY" [1]=> string(11) "tFad5gHoBjY" } [5]=> array(2) { [0]=> string(32) "youtube.com/watch?vi=tFad5gHoBjY" [1]=> string(11) "tFad5gHoBjY" } [6]=> array(2) { [0]=> string(20) "youtu.be/tFad5gHoBjY" [1]=> string(11) "tFad5gHoBjY" } [7]=> array(2) { [0]=> string(27) "http://youtu.be/qokEYBNWA_0" [1]=> string(11) "qokEYBNWA_0" } [8]=> array(2) { [0]=> string(25) "youtube.com/v/7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [9]=> array(2) { [0]=> string(26) "youtube.com/vi/7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [10]=> array(2) { [0]=> string(26) "youtube.com/?v=7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [11]=> array(2) { [0]=> string(27) "youtube.com/?vi=7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [12]=> array(2) { [0]=> string(31) "youtube.com/watch?v=7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [13]=> array(2) { [0]=> string(32) "youtube.com/watch?vi=7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [14]=> array(2) { [0]=> string(20) "youtu.be/7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [15]=> array(2) { [0]=> string(29) "youtube.com/embed/7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [16]=> array(2) { [0]=> string(32) "http://youtube.com/v/7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [17]=> array(2) { [0]=> string(36) "http://www.youtube.com/v/7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [18]=> array(2) { [0]=> string(37) "https://www.youtube.com/v/7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [19]=> array(2) { [0]=> string(31) "youtube.com/watch?v=7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [20]=> array(2) { [0]=> string(57) "http://www.youtube.com/watch?dev=inprogress&v=7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [21]=> array(2) { [0]=> string(31) "youtube.com/watch?v=7HCZvhRAk-M" [1]=> string(11) "7HCZvhRAk-M" } [22]=> array(2) { [0]=> string(32) "http://youtube.com/v/dQw4w9WgXcQ" [1]=> string(11) "dQw4w9WgXcQ" } [23]=> array(2) { [0]=> string(33) "http://youtube.com/vi/dQw4w9WgXcQ" [1]=> string(11) "dQw4w9WgXcQ" } [24]=> array(2) { [0]=> string(33) "http://youtube.com/?v=dQw4w9WgXcQ" [1]=> string(11) "dQw4w9WgXcQ" } [25]=> array(2) { [0]=> string(42) "http://www.youtube.com/watch?v=dQw4w9WgXcQ" [1]=> string(11) "dQw4w9WgXcQ" } [26]=> array(2) { [0]=> string(34) "http://youtube.com/?vi=dQw4w9WgXcQ" [1]=> string(11) "dQw4w9WgXcQ" } [27]=> array(2) { [0]=> string(38) "http://youtube.com/watch?v=dQw4w9WgXcQ" [1]=> string(11) "dQw4w9WgXcQ" } [28]=> array(2) { [0]=> string(39) "http://youtube.com/watch?vi=dQw4w9WgXcQ" [1]=> string(11) "dQw4w9WgXcQ" } [29]=> array(2) { [0]=> string(27) "http://youtu.be/dQw4w9WgXcQ" [1]=> string(11) "dQw4w9WgXcQ" } }
Если вы хотите упростить / изменить / изучить выражение, это объясняется на верхней правой панели regex101.com . Если хотите, вы также можете посмотреть по этой ссылке , как это будет соответствовать некоторым образцам входных данных.
Цепь RegEx
jex.im визуализирует регулярные выражения:
источник
if (preg_match('![?&]{1}v=([^&]+)!', $url . '&', $m)) $video_id = $m[1];
источник
(?<=\?v=)([a-zA-Z0-9_-]){11}
Это тоже должно сработать.
источник
У меня был контент для публикации, который мне пришлось зашифровать, чтобы получить идентификатор Youtube. Это оказалось в виде
<iframe>
кода для встраивания, который предоставляет Youtube.<iframe src="http://www.youtube.com/embed/Zpk8pMz_Kgw?rel=0" frameborder="0" width="620" height="360"></iframe>
Следующий шаблон я получил от @rob выше. Фрагмент выполняет
foreach
цикл после обнаружения совпадений, и в качестве дополнительного бонуса я связал его с изображением предварительного просмотра, найденным на Youtube. Он потенциально может соответствовать большему количеству типов встраиваемых типов и URL-адресов Youtube:$pattern = '#(?<=(?:v|i)=)[a-zA-Z0-9-]+(?=&)|(?<=(?:v|i)\/)[^&\n]+|(?<=embed\/)[^"&\n]+|(?<=(?:v|i)=)[^&\n]+|(?<=youtu.be\/)[^&\n]+#'; preg_match_all($pattern, $post_content, $matches); foreach ($matches as $match) { $img = "<img src='http://img.youtube.com/vi/".str_replace('?rel=0','', $match[0])."/0.jpg' />"; break; }
Профиль Роба: https://stackoverflow.com/users/149615/rob
источник
$vid = preg_replace('/^.*(\?|\&)v\=/', '', $url); // Strip all meuk before and including '?v=' or '&v='. $vid = preg_replace('/[^\w\-\_].*$/', '', $vid); // Strip trailing meuk.
источник
Я знаю, что название ветки относится к использованию регулярного выражения, но, как говорит цитата Завинского, я действительно думаю, что здесь лучше избегать регулярных выражений. Вместо этого я бы порекомендовал эту функцию:
function get_youtube_id($url) { if (strpos( $url,"v=") !== false) { return substr($url, strpos($url, "v=") + 2, 11); } elseif(strpos( $url,"embed/") !== false) { return substr($url, strpos($url, "embed/") + 6, 11); } }
Я рекомендую это, потому что идентификатор видео YouTube всегда один и тот же, независимо от стиля URL-адреса, например
http://www.youtube.com/watch?v=t_uW44Bsezg
http://www.youtube.com/watch?feature=endscreen&v=Id3xG4xnOfA&NR=1
и это может быть случай со встроенным и
iframe
-ed материалом.источник
Используйте этот код:
$url = "http://www.youtube.com/watch?v=C4kxS1ksqtw&feature=related"; $parse = parse_url($url, PHP_URL_QUERY); parse_str($parse, $output); echo $output['watch'];
результат:
C4kxS1ksqtw
источник
Только что нашел это в Интернете по адресу http://snipplr.com/view/62238/get-youtube-video-id-very-robust/
function getYouTubeId($url) { // Format all domains to http://domain for easier URL parsing str_replace('https://', 'http://', $url); if (!stristr($url, 'http://') && (strlen($url) != 11)) { $url = 'http://' . $url; } $url = str_replace('http://www.', 'http://', $url); if (strlen($url) == 11) { $code = $url; } else if (preg_match('/http:\/\/youtu.be/', $url)) { $url = parse_url($url, PHP_URL_PATH); $code = substr($url, 1, 11); } else if (preg_match('/watch/', $url)) { $arr = parse_url($url); parse_str($url); $code = isset($v) ? substr($v, 0, 11) : false; } else if (preg_match('/http:\/\/youtube.com\/v/', $url)) { $url = parse_url($url, PHP_URL_PATH); $code = substr($url, 3, 11); } else if (preg_match('/http:\/\/youtube.com\/embed/', $url, $matches)) { $url = parse_url($url, PHP_URL_PATH); $code = substr($url, 7, 11); } else if (preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+#", $url, $matches) ) { $code = substr($matches[0], 0, 11); } else { $code = false; } if ($code && (strlen($code) < 11)) { $code = false; } return $code; }
источник
Я использовал данные из ответа Шона, но немного обобщил и сократил регулярное выражение. Ключевое отличие от этого в том, что он не проверяет действительный URL-адрес Youtube, он просто ищет идентификатор видео. Это означает, что он по-прежнему будет возвращать идентификатор видео для
www.facebook.com?wtv=youtube.com/v/vidid
. Работает для всех тестовых случаев, но немного слабее. Следовательно, он выдаст ложное срабатывание для чего-то вродеhttps://www.twitter.com/watch?v=vidid
. Используйте этот метод, если данные суперсогласованы, в противном случае используйте более конкретное регулярное выражение илиparse_url()
иparse_str()
.preg_match("/([\?&\/]vi?|embed|\.be)[\/=]([\w-]+)/",$url,$matches); print($matches[2]);
источник
Я думаю, вы пытаетесь это сделать.
<?php $video = 'https://www.youtube.com/watch?v=u00FY9vADfQ'; $parsed_video = parse_url($video, PHP_URL_QUERY); parse_str($parsed_video, $arr); ?> <iframe src="https://www.youtube.com/embed/<?php echo $arr['v']; ?>" frameborder="0"> </iframe>
источник
а что, если я хочу извлечь URL-адрес youtue из строки, полной других символов? как это:
Lorem ipsum dolor sit amet, conctetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud training ullamco https://www.youtube.com/watch?v=cPW9Y94BJI0 labouris nisi ut aliquip ex ea Commodo Conquat. Duis aute irure dolor в репрехендерит в сладострастном velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, загорелся in culpa qui officia deserunt mollit anim id est Laborum.
и получить https://www.youtube.com/watch?v=cPW9Y94BJI0 из этой строки?
источник