此YouTube最新视频代码如何运作?

时间:2014-02-17 11:40:18

标签: youtube-api

我使用了一些代码来查找来自特定频道的最新视频,我对其工作原理有一个基本的了解,但我不确定它是如何获取视频的。如果有人能解释说那很棒

<!--Latest video-->
    <h1 class="title"> Latest video </h1>
    <div id="static_video"></div>
    <!--Source the latest vdeo-->
    <script type="text/javascript">
        function showVideo(response) {
            if(response.data && response.data.items) {
                var items = response.data.items;
                if(items.length>0) {
                    var item = items[0];
                    var videoid = "http://www.youtube.com/embed/"+item.id;
                    console.log("Latest ID: '"+videoid+"'");
                    var video = "<iframe width='720' height='480' src='"+videoid+"' frameborder='0' allowfullscreen></iframe>"; 
                    $('#static_video').html(video);
                }
            }
        }
    </script>
<script type="text/javascript" src="https://gdata.youtube.com/feeds/api/users/UC9DiuD3z0btMOAMG_FvDRag/uploads?max-results=1&orderby=published&v=2&alt=jsonc&callback=showVideo"></script>

可以看到here

另一个帮助是,如何通过搜索框显示所有视频,并通过它们进行搜索。对不起,如果我看起来很贪心,但如果有人可以解释的话,这将是一个巨大的帮助。

编辑:凹凸,我不喜欢碰撞,但我需要这个答案,请帮帮我!

1 个答案:

答案 0 :(得分:1)

首先,不推荐使用API​​ V2,您需要将YouTube API v3与资源search.list一起使用

您需要一个API密钥,请按此link获取一个。

使用此参数获取最新的频道上传内容:

part: 'snippet' or 'id'
channelId: 'UC9DiuD3z0btMOAMG_FvDRag'
maxResults: 1
order: date

https://www.googleapis.com/youtube/v3/search?part=id&channelId=UC9DiuD3z0btMOAMG_FvDRag&maxResults=1&order=date&key= {YOUR_API_KEY}

输出:

 "items": [
  {
   "kind": "youtube#searchResult",
   "etag": "\"PSjn-HSKiX6orvNhGZvglLI2lvk/9r2l5FZB6-ysy9_0d37qYA5Kg8I\"",
   "id": {
    "kind": "youtube#video",
    "videoId": "WH8U2NQ_fnA"
   }
  }

然后你有频道的最后一个视频ID。 之后,您需要使用YouTube API player。 一个实时示例,向您展示播放器的工作原理:http://jsbin.com/vajobawiba/1/edit?html,js,output

您只需要使用上一步获得的视频ID复制该代码!

示例:

在index.html的正文末尾添加此行

<script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script>

还有javascript示例:

function googleApiClientReady() {
    var apiKey = 'YOUR_API_KEY',
        youtubeId,
        request;
    gapi.client.setApiKey(apiKey);
    gapi.client.load('youtube', 'v3', function() {
        request = gapi.client.youtube.search.list({
            part: 'id',
            channelId: 'UC9DiuD3z0btMOAMG_FvDRag',
            maxResults: 1,
            order: date
        });
        request.execute(function(response) {
            if(response.pageInfo.totalResults != 0) {
                youtubeId = response.result.items[0].id.videoId;
            }
        });
    }); 
}