Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何显示youtube视频缩略图_Php_Youtube_Thumbnails - Fatal编程技术网

Php 如何显示youtube视频缩略图

Php 如何显示youtube视频缩略图,php,youtube,thumbnails,Php,Youtube,Thumbnails,我的网站允许用户上传youtube视频代码。我试图通过显示上传视频的缩略图来制作播放列表,并在单击特定缩略图后播放相应的视频 我想知道使用youtube的嵌入代码上传的视频的标题和缩略图的获取方法 编辑: 为了让问题更清楚,我的用户上传的代码如下所示: <object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/-L8DFfSJbqU&hl=en_US&

我的网站允许用户上传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,然后再找到缩略图?

如果您有视频id,可以使用中描述的链接

链接格式如下:

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>
然后这是视频id:

-L8DFfSJbqU
因此,您的缩略图链接是:

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

可以从视频url加载的缩略图

视频URL

缩略图URL

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

若并没有缩略图,它将返回带有摄像头的图像(长度正好为893字节)

范例


用于youtube的GDataAPI允许您获取有关提要、用户、视频等的信息

此链接介绍了回复中有关缩略图的部分:

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

与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";

都可以在这里找到:

很容易你可以访问我的网站我为此创建了一个应用程序

这也是我用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 ...";  

                }
                ?>

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

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

http://img.youtube.com/vi/<youtube-video-id>/default.jpg
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
所以-

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


如何使用php提取它?任何建议您都可以使用正则表达式,例如,这是可以帮助您“(.{11})”的正则表达式。您可以使用此函数了解如何使用此regexp(youtube\.com\/(watch\?v=)?(v\/)([\w\-]+))更好地从我的上述代码中提取api的“the0KZLEacs”视频id。它可以处理两个URL(带/v/和带watch?v=)preg_match('/youtube\.com\/v\/([\w\-]+)/,$code,$match);echo$match[3];没问题。但要学习youtube上的GDataAPI。如果您现在能够解析视频ID,您可以获取更多信息(标题…)。这些缩略图可以通过https而不是http检索吗?了解api非常有用。。。很快就会查出来的。非常好
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" />