使用PHP从Youtube视频网址获取Youtube视频缩略图

Neo*_*Neo 4 php youtube

可以说我有一个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

Pas*_*TIN 20

要从以下URL中提取标识符:

$url = 'www.youtube.com/watch?v=B4CRkpBGQzU&feature=youtube_gdata&par1=1&par2=2';
Run Code Online (Sandbox Code Playgroud)


您可以先使用parse_url()获取查询字符串:

$queryString = parse_url($url, PHP_URL_QUERY);
var_dump($queryString);
Run Code Online (Sandbox Code Playgroud)

在这里,它会给你:

string 'v=B4CRkpBGQzU&feature=youtube_gdata&par1=1&par2=2' (length=49)
Run Code Online (Sandbox Code Playgroud)


然后,用于parse_str()从该查询字符串中提取参数:

parse_str($queryString, $params);
var_dump($params);
Run Code Online (Sandbox Code Playgroud)

哪个会得到以下数组:

array
  'v' => string 'B4CRkpBGQzU' (length=11)
  'feature' => string 'youtube_gdata' (length=13)
  'par1' => string '1' (length=1)
  'par2' => string '2' (length=1)
Run Code Online (Sandbox Code Playgroud)


而且,现在,只需使用该v数组中的项目,将其注入缩略图URL:

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

这使 :

i3.ytimg.com/vi/B4CRkpBGQzU/default.jpg
Run Code Online (Sandbox Code Playgroud)

  • @Neo接受这个答案.这是最好的一个. (3认同)

Jer*_*nes 8

<?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");
?>
Run Code Online (Sandbox Code Playgroud)


gen*_*sis 6

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");
Run Code Online (Sandbox Code Playgroud)