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

使用PHP从Youtube视频Url获取Youtube视频缩略图,php,youtube,Php,Youtube,假设我有一个youtube视频urlwww.youtube.com/watch?v=B4CRkpBGQzU&feature=youtube\u gdata&par1=1&par2=2 我想获取视频缩略图->i3.ytimg.com/vi/B4CRkpBGQzU/default.jpg 我只需要一个简单的php脚本,我将输入$url并获得$img 如果可能的话,我想去掉所有其他参数,只剩下 www.youtube.com/watch?v=B4CRkpBGQzU作为$url假设youtube不改变格

假设我有一个youtube视频url
www.youtube.com/watch?v=B4CRkpBGQzU&feature=youtube\u gdata&par1=1&par2=2

我想获取视频缩略图->i3.ytimg.com/vi/B4CRkpBGQzU/default.jpg 我只需要一个简单的php脚本,我将输入$url并获得$img 如果可能的话,我想去掉所有其他参数,只剩下
www.youtube.com/watch?v=B4CRkpBGQzU作为$url

假设youtube不改变格式:

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

这将获得
$matches[1]中的'B4CRkpBGQzU'部分


要从以下URL提取标识符,请执行以下操作:

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

您可以首先使用获取查询字符串:

$queryString = parse_url($url, PHP_URL_QUERY);
var_dump($queryString);
parse_str($queryString, $params);
var_dump($params);
在这里,你可以得到:

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

然后,使用从该查询字符串中提取参数:

$queryString = parse_url($url, PHP_URL_QUERY);
var_dump($queryString);
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

从URL获取视频ID

$url = "http://www.youtube.com/watch?v=oHg5SJYRHA0&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");

编辑它。忘了包括$matches。然后使用$matches创建新的URL。谢谢,这是一个完美的解决方案。只有一个问题,我得到的图像太小了。如何获得300*300大小的更大图像。我必须将此信息嵌入“每周视频”下的电子邮件中。@Purushottamzende