【问题标题】:Get the Youtube Video Thumbnail from Youtube video Url using PHP使用 PHP 从 Youtube 视频 Url 获取 Youtube 视频缩略图
【发布时间】:2011-10-12 02:07:54
【问题描述】:

假设我有一个 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

【问题讨论】:

    标签: php youtube


    【解决方案1】:

    从以下 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
    

    【讨论】:

    • 感谢您提供完美的解决方案。只是一个问题,我得到的图像太小了。如何获得更大的图像,大小为 300*300。我必须将其嵌入到“本周视频”下的电子邮件中。
    【解决方案2】:
    <?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");
    ?>
    

    【讨论】:

      【解决方案3】:

      $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");
      

      【讨论】:

        【解决方案4】:

        假设 youtube 没有改变它们的格式:

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

        这将为您提供$matches[1]; 中的“B4CRkpBGQzU”部分

        【讨论】:

        • 已编辑。忘记包含 $matches。然后只需使用 $matches 您希望如何创建新 URL。
        【解决方案5】:

        从 URL 获取视频 ID

        $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");
        

        【讨论】:

          猜你喜欢
          • 2020-06-26
          • 2018-06-09
          • 2015-03-26
          • 2020-08-27
          • 2011-11-05
          • 1970-01-01
          • 2017-10-14
          • 2011-05-25
          • 1970-01-01
          相关资源
          最近更新 更多