Php 如何显示youtube视频缩略图
我的网站允许用户上传youtube视频代码。我试图通过显示上传视频的缩略图来制作播放列表,并在单击特定缩略图后播放相应的视频 我想知道使用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&
<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" />