【问题标题】:how to show youtube video thumbnails如何显示 youtube 视频缩略图
【发布时间】:2011-03-25 05:16:49
【问题描述】:

我的网站允许用户上传 youtube 视频代码。我正在尝试通过显示上传视频的缩略图来制作播放列表,并在单击特定缩略图后播放相应的视频。

我想知道使用youtube的嵌入代码上传的视频的标题和缩略图的获取方法?

编辑:

为了让问题更清楚,我的用户上传如下代码:

<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/-L8DFfSJbqU&hl=en_US&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-L8DFfSJbqU&hl=en_US&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>

那么我如何从这些代码中首先找到视频 ID,然后再找到缩略图?

【问题讨论】:

    标签: php youtube thumbnails


    【解决方案1】:

    您可以使用这些网址尝试不同类型的 YouTube 视频缩略图 -

    对于默认和正常质量的缩略图:

    http://img.youtube.com/vi/<youtube-video-id>/default.jpg
    

    对于高质量 (HQ) 缩略图:

    http://img.youtube.com/vi/<youtube-video-id>/hqdefault.jpg
    

    还有一个中等质量的缩略图:

    http://img.youtube.com/vi/<youtube-video-id>/mqdefault.jpg
    

    对于最大分辨率缩略图:

    http://img.youtube.com/vi/<youtube-video-id>/maxresdefault.jpg
    

    例如。

    YouTube link - http://www.youtube.com/watch?v=4EvNxWhskf8
    YouTube video id - 4EvNxWhskf8
    

    这样-

    <img src="http://img.youtube.com/vi/4EvNxWhskf8/hqdefault.jpg" title="YouTube Video" alt="YouTube Video" />
    

    【讨论】:

    • 完美的感谢:D
    【解决方案2】:

    您可以从视频网址加载的缩略图。

    视频网址

    http://www.youtube.com/watch?v=Xzf0rvQa4Mc

    缩略图网址

    http://i1.ytimg.com/vi/Xzf0rvQa4Mc/default.jpg

    http://i2.ytimg.com/vi/Xzf0rvQa4Mc/default.jpg

    http://i3.ytimg.com/vi/Xzf0rvQa4Mc/default.jpg

    http://i4.ytimg.com/vi/Xzf0rvQa4Mc/default.jpg

    将图像复制到新视频的所有缩略图 url(可能是服务器)需要一些时间。

    如果没有缩略图,则返回带有相机的图像(长度正好是 893 字节)。

    示例

    http://i4.ytimg.com/vi/Xzf0rvQa4Md/default.jpg

    【讨论】:

    • 更好地使用这个正则表达式 (youtube\.com\/(watch\?v=)?(v\/)?([\w\-]+)) 它可以处理两个 url (with /v/ 和 watch?v=) preg_match('/youtube\.com\/v\/([\w\-]+)/', $code, $match);回声 $match[3];
    • 没问题。但是学习 youtube 的 GData API。如果您现在能够解析视频 ID,则可以获取更多信息(标题,...)。
    • 这些缩略图可以通过https而不是http检索吗?
    【解决方案3】:

    使用 YouTube API:

       /* Some stuff goes before here to initialize API connection */
    
       /* Then get started: */
       $yt = new Zend_Gdata_YouTube()
       $videoEntry = $yt->getVideoEntry('the0KZLEacs'); //Video-ID
       $videoThumbnails = $videoEntry->getVideoThumbnails()
    
       echo 'Video: ' . $videoEntry->getVideoTitle() . "\n";
       echo 'Video ID: ' . $videoEntry->getVideoId() . "\n";
       echo 'Updated: ' . $videoEntry->getUpdated() . "\n";
       echo 'Description: ' . $videoEntry->getVideoDescription() . "\n";
       echo 'Category: ' . $videoEntry->getVideoCategory() . "\n";
       echo 'Tags: ' . implode(", ", $videoEntry->getVideoTags()) . "\n";
       echo 'Watch page: ' . $videoEntry->getVideoWatchPageUrl() . "\n";
       echo 'Flash Player Url: ' . $videoEntry->getFlashPlayerUrl() . "\n";
       echo 'Duration: ' . $videoEntry->getVideoDuration() . "\n";
       echo 'View count: ' . $videoEntry->getVideoViewCount() . "\n";
       echo 'Rating: ' . $videoEntry->getVideoRatingInfo() . "\n";
       echo 'Geo Location: ' . $videoEntry->getVideoGeoLocation() . "\n";
       echo 'Recorded on: ' . $videoEntry->getVideoRecorded() . "\n";
    

    都可以在这里找到:Developers Guide

    【讨论】:

    • 如何从我上面的代码中提取 api 的“the0KZLEacs”视频 id
    【解决方案4】:

    您可以轻松访问我的网站,我为此创建了一个应用程序,

    http://shofnee.com/metal_shofnee/apps/youtube_app/youtube_app.php

    这也是我为使这个应用程序使用 php 语言而编写的代码

     <?php
                    //getting and validating the embed code
                    $cde = $_POST['txt_embd'];
                    if(!empty($cde))
                    {
                    $part_one_cde = explode("/",$cde);
    
                    $part_2_cde = explode("?",$part_one_cde[4]);
    
                    $img_1 = "http://img.youtube.com/vi/$part_2_cde[0]/0.jpg";
                    $img_2 = "http://img.youtube.com/vi/$part_2_cde[0]/1.jpg";
                    $img_3 = "http://img.youtube.com/vi/$part_2_cde[0]/2.jpg";
    
                    echo "Img 1";
                    echo "<br />";
                    echo "<img src=\"$img_3\" width=\"100\" height=\"100\" />";
                    echo"<br /><br />";
                    echo "Img 2";
                    echo "<br />";
                    echo "<img src=\"$img_2\" width=\"150\" height=\"150\" />";
                    echo"<br /><br />";
                    echo "Img 3";
                    echo "<br />";
                    echo "<img src=\"$img_1\" width=\"200\" height=\"200\" />";
    
                    }
                    else
                    {
                    echo "Please put any embed code to get it's pics ...";  
    
                    }
                    ?>
    

    【讨论】:

      【解决方案5】:

      YouTube 的 GData API 允许您获取有关提要、用户、视频等的信息。

      此链接描述了与缩略图相关的回复部分:

      http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_media:thumbnail

      不要对 URL 进行硬编码,因为 Google 可以随时更改它们。使用 API。

      【讨论】:

      • 了解 api 非常有用...很快也会检查出来
      【解决方案6】:

      如果您有视频 ID,则可以使用 this article 中描述的链接

      链接格式如下:

      http://img.youtube.com/vi/VIDEO_ID/default.jpg
      

      更新

      如果这是您拥有的代码:

      <object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/-L8DFfSJbqU&hl=en_US&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-L8DFfSJbqU&hl=en_US&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>
      

      那么这是视频链接:

      http://www.youtube.com/v/-L8DFfSJbqU&hl=en_US&fs=1
      

      那么这是视频 ID:

      -L8DFfSJbqU
      

      所以你的缩略图链接是:

      http://img.youtube.com/vi/-L8DFfSJbqU/default.jpg
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 2015-03-26
      • 1970-01-01
      • 2023-03-27
      • 2020-02-17
      • 2020-12-09
      • 1970-01-01
      相关资源
      最近更新 更多