如何从YouTube API获取YouTube视频缩略图?

如果我有YouTube视频网址,有什么方法可以使用PHP和cURL从YouTube API获取关联的缩略图吗?


每个YouTube视频都有4个生成的图像。 它们的格式可以预见如下:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/1.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/2.jpg
https://img.youtube.com/vi/<insert-youtube-video-id-here>/3.jpg

列表中的第一个是全尺寸图像,其他是缩略图图像。 默认的缩略图(即1.jpg2.jpg3.jpg )是:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg

对于缩略图的高质量版本,请使用与此类似的网址:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg

还有一个中等质量的缩略图版本,使用类似于总部的网址:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg

对于缩略图的标准定义版本,请使用与此类似的网址:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/sddefault.jpg

对于缩略图的最大分辨率版本,请使用与此类似的网址:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

所有上述的url都可以通过http访问。 此外,在上面的示例网址中,稍短的主机i3.ytimg.com可以代替img.youtube.com

或者,您可以使用YouTube数据API(v3)获取缩略图。


您可以使用YouTube数据API检索视频缩略图,标题,说明,评分,统计数据等。 API版本3需要一个密钥*。 获取密钥并创建视频:列表请求:

https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID

PHP代码示例

$data = file_get_contents("https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=T0Jqdjbed40");
$json = json_decode($data);
var_dump($json->items[0]->snippet->thumbnails);

产量

object(stdClass)#5 (5) {
  ["default"]=>
  object(stdClass)#6 (3) {
    ["url"]=>
    string(46) "https://i.ytimg.com/vi/T0Jqdjbed40/default.jpg"
    ["width"]=>
    int(120)
    ["height"]=>
    int(90)
  }
  ["medium"]=>
  object(stdClass)#7 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/mqdefault.jpg"
    ["width"]=>
    int(320)
    ["height"]=>
    int(180)
  }
  ["high"]=>
  object(stdClass)#8 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/hqdefault.jpg"
    ["width"]=>
    int(480)
    ["height"]=>
    int(360)
  }
  ["standard"]=>
  object(stdClass)#9 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/sddefault.jpg"
    ["width"]=>
    int(640)
    ["height"]=>
    int(480)
  }
  ["maxres"]=>
  object(stdClass)#10 (3) {
    ["url"]=>
    string(52) "https://i.ytimg.com/vi/T0Jqdjbed40/maxresdefault.jpg"
    ["width"]=>
    int(1280)
    ["height"]=>
    int(720)
  }
}

*不仅您需要密钥,还可能会根据您计划制作的API请求的数量,要求您提供帐单信息。 但是,每天有数百万的请求是免费的。

源文章。


Asaph说的是对的。 但是,并非每个YouTube视频都包含全部九个缩略图,但每个视频都有七个缩略图。 他们是:

(图片大小取决于视频。)

  • 播放器背景缩略图(480x360像素)
    https://i1.ytimg.com/vi/G0wGs3useV8/0.jpg

  • 开始缩略图(120x90像素)
    https://i1.ytimg.com/vi/G0wGs3useV8/1.jpg

  • 中间缩略图(120x90像素)
    https://i1.ytimg.com/vi/G0wGs3useV8/2.jpg

  • 结束缩略图(120x90像素)
    https://i1.ytimg.com/vi/G0wGs3useV8/3.jpg

  • 高品质缩略图(480x360像素)
    https://i1.ytimg.com/vi/G0wGs3useV8/hqdefault.jpg

  • 中质量缩略图(320x180像素)
    https://i1.ytimg.com/vi/G0wGs3useV8/mqdefault.jpg

  • 正常质量缩略图(120x90像素)
    https://i1.ytimg.com/vi/G0wGs3useV8/default.jpg

  • 另外,接下来的两个缩略图可能存在也可能不存在。 对于HQ视频他们存在。

  • 标准清晰度缩略图(640x480像素)
    https://i1.ytimg.com/vi/G0wGs3useV8/sddefault.jpg

  • 最大分辨率缩略图(1920x1080像素)
    https://i1.ytimg.com/vi/G0wGs3useV8/maxresdefault.jpg

  • 您可以通过JavaScript和PHP脚本来检索缩略图和其他YouTube信息

  • 如何使用PHP获取YouTube视频信息
  • 使用JavaScript检索YouTube视频详细信息 - JSON和API v2
  • 还可以使用工具YouTube视频信息生成器通过提交网址或视频ID来获取YouTube视频的所有信息。

    链接地址: http://www.djcxy.com/p/757.html

    上一篇: How do I get a YouTube video thumbnail from the YouTube API?

    下一篇: Check if a given key already exists in a dictionary