【问题标题】:How to get a youtube playlist thumbnail?如何获取 youtube 播放列表缩略图?
【发布时间】:2012-05-24 14:51:24
【问题描述】:

有没有办法像获取视频缩略图一样获取 youtube 播放列表缩略图,此处解释:How do I get a YouTube video thumbnail from the YouTube API?

【问题讨论】:

    标签: youtube youtube-api youtube-javascript-api


    【解决方案1】:

    借助 YouTube API v3,您可以使用他们的 v3/playlists 端点获取播放列表缩略图并向下钻取到 items.snippet.thumbnails.high.url

    对于以下播放列表:

    https://www.youtube.com/playlist?list=PL50C17441DA8A565D

    YouTube 的 API 浏览器有一个播放列表端点:

    https://developers.google.com/youtube/v3/docs/playlists/list

    这是 API 调用:

    GET https://www.googleapis.com/youtube/v3/playlists?part=snippet&id=PL50C17441DA8A565D&key={YOUR_API_KEY}

    下面是回复:

        {
         "kind": "youtube#playlistListResponse",
         "items": [
          {
           "kind": "youtube#playlist",
           "id": "PL50C17441DA8A565D",
           "snippet": {
            "title": "Jay Chou Playlist",
            "thumbnails": {
             "default": {
              "url": "https://i.ytimg.com/vi/kGbDymJ75PU/default.jpg",
              "width": 120,
              "height": 90
             },
             "medium": {
              "url": "https://i.ytimg.com/vi/kGbDymJ75PU/mqdefault.jpg",
              "width": 320,
              "height": 180
             },
             "high": {
              "url": "https://i.ytimg.com/vi/kGbDymJ75PU/hqdefault.jpg",
              "width": 480,
              "height": 360
             }
            },
            "channelTitle": "it23"
           }
          }
         ]
        }
    

    【讨论】:

      【解决方案2】:

      这对我有用。与其他关于播放列表项的帖子类似,但我只是更改了 API 调用。希望对您有所帮助。

      //获取播放列表项

      $data = file_get_contents("https://www.googleapis.com/youtube/v3/playlistItems?key=< YOUR API KEY >&part=snippet&playlistId="<Put your playlist id here>");
      

      //解码来自youtube的响应

      $json = json_decode($data);
      

      //如果你想看到完整的响应使用 print_r($json);

      //响应中的每个项目对应于播放列表中的一个视频,因此让我们获取第一个视频(items[0])获取它的 sn-p 和相应的缩略图,我们将采用默认大小的 url。如果您想要第二个视频,请使用项目 [1] 等。

      $video_thumbnail = $json->items[0]->snippet->thumbnails->default->url;
      

      //将视频的alt标签设置为sn-p描述

      $video_alt = $json->items[0]->snippet->description; 
      

      //将图片url回显到图片标签中

      echo '<img src="'. $video_thumbnail .'" alt="'. $video_alt .'" />';
      

      【讨论】:

        【解决方案3】:

        没有用于此目的的 API。这是我能想到的解决方法。

        1) youtube 播放列表缩略图是什么?玩弄我的帐户,似乎规则如下:

        if playlist has 5+ videos
          thumbnail = first 5 video images
        else if playlist has 1+ videos
          thumbnail = all video images
        else shows this list is empty
        

        2) 然后就可以用同样的方法来获取视频缩略图了。

        3) 在客户端(一些 CSS)或服务器端组合图像

        【讨论】:

        • 嗯,我明白了,但是说我有一个播放列表 id,我如何获得第一个视频的 id 以便我可以拉出第一个视频的缩略图?我只是想显示一个相关的缩略图,它是第三个还是第一个对我来说并不重要。
        • 以下 API 返回给定播放列表的视频 (2C441924AEB5811E):gdata.youtube.com/feeds/api/playlists/2C441924AEB5811E。您可以从任何条目中获取视频缩略图。
        猜你喜欢
        • 2011-08-17
        • 2018-09-01
        • 2017-02-11
        • 2019-05-25
        • 2014-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-11
        相关资源
        最近更新 更多