我想得到youtube最高的缩略图"maxresdefault.jpg"
就像这个
http://i.ytimg.com/vi/Cj6ho1-G6tw/maxresdefault.jpg
我用这个简单的php代码
<?php
$youtub_id = "Cj6ho1-G6tw";
echo "http://i.ytimg.com/vi/".$youtub_id."/maxresdefault.jpg";
?>
上面代码的问题是有这样的视频http://youtu.be/VGazSZUYyf4非高清
结果是youtube的灰色小404图像
http://i.ytimg.com/vi/VGazSZUYyf4/maxresdefault.jpg
那么如何获得最高的YouTube缩略图,这样如果"MaxResDefault"不可用就获得下一个大缩略图"HQDefault",如果不能获得下一个"MQDefault"等等...
- 我尝试使用gdata youtube,但无论如何,视频高清或不"maxresdefault"不显示。**
4条答案
按热度按时间jhdbpxl91#
原因是Making the Most of Maps上的分辨率不是至少720p。
查看api for this specific video,您可以看到没有
maxresdefault
。只有分辨率为720p或更高的视频才有
maxresdefault
。这在更高分辨率的视频中没有列出。因此,为了获得最高分辨率,您还应该检查maxresdefault
是否也能正常工作。要获得最高质量的缩略图,最好的方法是使用API并获得具有最大
yt:name
属性的图像。顺序为:
实际应用的示例代码:
这在
$youtub_id = "Cj6ho1-G6tw";
和$youtub_id = "VGazSZUYyf4";
上都有效。xqk2d5yq2#
您可以使用
getimagesize()
并检查映像是否存在(也有file_exists()
,但在本例中它可能不会很好地工作)。您可以使用此功能获取特定视频的最大分辨率屏幕截图。
注意:这可能不是最佳解决方案,如果您不想使用API,这是一种变通方法。
cuxqih213#
所有其他依赖于静态url抓取的答案都不受支持。它们可能会被更改,你可能需要每次都更改你的应用程序。
为此,您应该使用Data API v3。您应该使用id=videoId和part=snippet来执行videos->list请求。在响应中,您将检查snippet.thumbnails. ['high'].url
xu3bshqb4#
多亏了Ibrahim Ulukaya的回答,我才能理解为什么David Chen之前的正确答案不再有效;Google已经弃用了之前的API。(Wicked, bad, naughty, evil, Google. )
以下URL将使用Data API v3返回缩略图对象的列表:
{VIDEO_ID}
可以作为任何YouTube视频URL的一部分找到,{API_KEY}
要求您:当您将
VIDEO_ID
和API_KEY
替换为占位符的URL后,您应返回如下所示的JSON:我猜你知道该怎么做了...?
希望这个有用。