Получите миниатюру видео с YouTube на Youtube, используя PHP - PullRequest
4 голосов
/ 24 июля 2011

Допустим, у меня есть URL-адрес видео на YouTube www.youtube.com/watch?v=B4CRkpBGQzU&feature=youtube_gdata&par1=1&par2=2

Я хочу получить миниатюру видео -> i3.ytimg.com/vi/B4CRkpBGQzU/default.jpg Мне просто нужен простой скрипт php, я введу $ url и получу $ img Если возможно, я бы хотел удалить все остальные параметры и оставить только www.youtube.com/watch?v=B4CRkpBGQzU как $ url

Ответы [ 5 ]

20 голосов
/ 24 июля 2011

Чтобы извлечь идентификатор из следующего URL:

$url = 'www.youtube.com/watch?v=B4CRkpBGQzU&feature=youtube_gdata&par1=1&par2=2';


Вы можете сначала использовать parse_url(), чтобы получить строку запроса:

$queryString = parse_url($url, PHP_URL_QUERY);
var_dump($queryString);

Что, в данном случае, даст вам:

string 'v=B4CRkpBGQzU&feature=youtube_gdata&par1=1&par2=2' (length=49)


И затем используйте parse_str() для извлеченияпараметры из этой строки запроса:

parse_str($queryString, $params);
var_dump($params);

Что бы получить следующий массив:

array
  'v' => string 'B4CRkpBGQzU' (length=11)
  'feature' => string 'youtube_gdata' (length=13)
  'par1' => string '1' (length=1)
  'par2' => string '2' (length=1)


И теперь, это просто вопрос использования vэлемент из этого массива, вставляя его в миниатюру URL:

if (isset($params['v'])) {
    echo "i3.ytimg.com/vi/{$params['v']}/default.jpg";
}

, что дает:

i3.ytimg.com/vi/B4CRkpBGQzU/default.jpg
7 голосов
/ 25 августа 2012
<?php
        function getYoutubeImage($e){
        //GET THE URL
        $url = $e;

        $queryString = parse_url($url, PHP_URL_QUERY);

        parse_str($queryString, $params);

        $v = $params['v'];  
        //DISPLAY THE IMAGE
        if(strlen($v)>0){
            echo "<img src='http://i3.ytimg.com/vi/$v/default.jpg' width='150' />";
        }
    }
?>

<?php
    getYoutubeImage("http://www.youtube.com/watch?v=CXWSlho1mMY&feature=plcp");
?>
6 голосов
/ 24 июля 2011

https://img.youtube.com/vi/B4CRkpBGQzU/default.jpg https://img.youtube.com/vi/B4CRkpBGQzU/1.jpg https://img.youtube.com/vi/B4CRkpBGQzU/2.jpg https://img.youtube.com/vi/B4CRkpBGQzU/3.jpg

$url = "http://youtube.com/watch?v=B4CRkpBGQzU";
$url = explode("&", $url);
$vidID = preg_match("|?v=(.*)|", $url);
$thumb_default = file_get_contents("http://img.youtube.com/vi/$vidID/default.jpg");

$thumb1 = file_get_contents("http://img.youtube.com/vi/$vidID/0.jpg");
$thumb2 = file_get_contents("http://img.youtube.com/vi/$vidID/1.jpg");
$thumb3 = file_get_contents("http://img.youtube.com/vi/$vidID/2.jpg");
$thumb4 = file_get_contents("http://img.youtube.com/vi/$vidID/3.jpg");
0 голосов
/ 13 сентября 2014

Получение идентификатора видео с URL

$url = "http://www.youtube.com/watch?v=oHg5SJYRHA0&amp;feature=relate";
parse_str( parse_url( $url, PHP_URL_QUERY ) );
echo $vidID;//this is video id

Получение изображений

$thumb1 = file_get_contents("http://img.youtube.com/vi/$vidID/0.jpg");
$thumb2 = file_get_contents("http://img.youtube.com/vi/$vidID/1.jpg");
$thumb3 = file_get_contents("http://img.youtube.com/vi/$vidID/2.jpg");
$thumb4 = file_get_contents("http://img.youtube.com/vi/$vidID/3.jpg");
0 голосов
/ 24 июля 2011

Предполагается, что YouTube не меняет свой формат:

$thumb = preg_match('/watch\?v=(.*)&feature/',$url, $matches);

Это даст вам часть 'B4CRkpBGQzU' в $matches[1];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...