如何在youtube api v3中的播放列表中动态加载最新的YouTube视频?

时间:2015-04-21 13:14:26

标签: video dynamic youtube youtube-api

我们曾经(2015年4月20日之前Youtube代码转换)使用此:

然而,这不再有效,我们会收到一个通用视频,告诉我们要转到此处:https://support.google.com/youtube/answer/6098135?p=yt_devicesupport&hl=en&rd=1

    <div id="player"></div>

<script>
    function showVideo(response) {
        if(response.data && response.data.items) {
            var items = response.data.items;
            if(items.length>0) {
                var item = items[0];
                var videoid = "https://www.youtube.com/embed/"+item.id;
                console.log("Latest ID: '"+videoid+"'");
                var video = "<iframe width='200' height='200' src='"+videoid+"' frameborder='0' allowfullscreen></iframe>"; 
                $('#player').html(video);
            }
        }
    }
</script>
    <script src="https://gdata.youtube.com/feeds/api/users/AllCoveredInc/uploads?max-results=1&orderby=published&v=2&alt=jsonc&callback=showVideo"></script>

请指教。感谢。

1 个答案:

答案 0 :(得分:0)

如果您想要获取视频的“播放列表”只是用户的上传,只要您拥有用户的频道ID,就可以在V3中获得相同的信息。如果你没有频道ID,你可以这样做:

https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername= {用户名}&安培;关键= {} YOUR_API_KEY

(不要忘记在console.developers.google.com上注册api密钥!)

获得频道ID后,您可以使用搜索端点获取用户最新上传的视频,如下所示:

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

请注意,这是JSON,而不是JSON-P,因此它不会自动执行您的回调;您需要使用Google API javascript客户端或标准的ajax库来进行该调用,当数据返回时,您可以手动将其传递给showvideo()方法进行处理。

如果您想要从其他类型的播放列表中获取视频(即不是用户的上传,但可能是手工制作的播放列表),您的通话将会是这样的:

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=PLid2PnAnKqQEETT-Ppjj5y_PgpcQ8qGaQ&key= {YOUR_API_KEY}

以PL开头的长字符串是播放列表ID。请注意,生成的json形式略有不同,但仍包含视频ID。