【问题标题】:How to get a youtube's video static image using javascript?如何使用 javascript 获取 youtube 视频静态图像?
【发布时间】:2010-11-16 21:27:04
【问题描述】:

在视频库中,YouTube 会显示视频的图像,而不是 Flash 播放器。如果单击图像,您将被重定向到 Flash 视频播放器所在的页面。我想展示第一张静态图片。

如何以编程方式做到这一点?

【问题讨论】:

    标签: video image youtube


    【解决方案1】:

    对于 Javascript:(我假设您将其标记为 flash,因为 Youtube 是一个 flash 视频播放器)

    function getScreen( url, size )
    {
      if(url === null){ return ""; }
    
      size = (size === null) ? "big" : size;
      var vid;
      var results;
    
      results = url.match("[\\?&]v=([^&#]*)");
    
      vid = ( results === null ) ? url : results[1];
    
      if(size == "small"){
        return "http://img.youtube.com/vi/"+vid+"/2.jpg";
      }else {
        return "http://img.youtube.com/vi/"+vid+"/0.jpg";
      }
    }
    

    找到here

    离开这个函数,基本上你只需要把 v=ladlfasd 参数放到这个 url 中:

    http://img.youtube.com/vi/(v= parameter)/2.jpg
    

    2.jpg 小,0.jpg 大

    【讨论】:

    • 对如何从播放列表中检索图像有任何想法吗?
    【解决方案2】:
    function getYoutubeThumbnail($url)
    {
    
        if(preg_match('![?&]{1}v=([^&]+)!', $url . '&', $m))
        {
            $videoid = $m[1];
        }
        else if(preg_match('~/v/([0-9a-z_]+)~i', $url, $m))
        {
            $videoid = $m[1];
        }
    
        $youtube_thumbnail = 'http://img.youtube.com/vi/' . $videoid . '/default.jpg';
    
        $c = curl_init();
    
        $url = trim($url);
    
        curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    
        curl_setopt($c, CURLOPT_URL, $url);
    
        $contents = curl_exec($c);
    
        curl_close($c);
    
    
        $feed = "http://gdata.youtube.com/feeds/api/videos/".$videoid;
    
        $newInfo = trim(@file_get_contents($feed));
    
        preg_match('/<media:title(.*?)<\/media:title>/', $newInfo, $result);
    
        $title = strip_tags($result[0]);
    
        preg_match('/<media:keywords(.*?)<\/media:keywords>/', $newInfo, $result);
    
         $desc = strip_tags(str_replace(",", "", $result[0]));
    
         //embed path
         $embed_path = "http://www.youtube.com/embed/".$videoid;
    
    
    
        $youtube_info = array('videoid' => $videoid,'title' => $title, 'description' => $desc,'youtube_thumbnail' => $youtube_thumbnail,'embed_path' => $embed_path) ;
    
        return $youtube_info;
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-28
      • 2015-07-23
      • 2015-12-01
      • 2020-07-01
      • 2011-10-12
      • 2017-10-11
      • 2015-09-04
      • 2011-07-08
      相关资源
      最近更新 更多