在网站上嵌入最新的 YouTube 视频?

Embed most recent YouTube videos on website?

我目前正在学习网络开发,我和一个在 YouTube 上相当大的人成为朋友,所以我提出免费为他创建一个网站,以便在我学习的同时建立我的作品集。我希望能够嵌入他的 8 个最新视频,但我不确定该怎么做。

我在 SO 上找到了下面的代码,但它适用于 YouTube 数据 API V2,因此不再有效。我似乎找不到使用 API v3 的类似方法。干杯,

奥利.

<!DOCTYPE html>
<html>
<head>
    <title>YouTube Recent Upload Thing</title>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
</head>
<body>
<div id="static_video"></div>
    <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='420' height='315' src='"+videoid+"' frameborder='0' allowfullscreen></iframe>"; 
                    $('#static_video').html(video);
                }
            }
        }
    </script>
    <script type="text/javascript" src="https://gdata.youtube.com/feeds/api/users/urusernamehere/uploads?max-results=1&orderby=published&v=2&alt=jsonc&callback=showVideo"></script>
</body>
</html>

如果您进行一些调整,您的代码可以正常工作。

首先,要获取最后 8 个视频,您需要在 'query url' 中包含该数字,如 max-results:

                                                                 here
                                                                   ▼
https://gdata.youtube.com/feeds/api/users/VEVO/uploads?max-results=8&orderby=published&v=2&alt=jsonc&callback=showVideo

然后,要显示每个视频,而不是 if 语句,您需要有一个循环(此处为 for 循环),并且 .append() 每个视频而不是替换每次全部内容 .html():

function showVideo(response) {
    if(response.data && response.data.items) {
        var items = response.data.items;
        // the loop i'm talking about
        for(var i=0, l=items.length; i<l; i++){
            var item = items[i];
            var videoid = "http://www.youtube.com/embed/"+item.id;
            console.log("Latest ID: '"+videoid+"'");
            var video = "<iframe width='420' height='315' src='"+videoid+"' frameborder='0' allowfullscreen></iframe>";
            // here, add the video to the container
            $('#static_video').append(video);
        }
    }
}

这将嵌入您的 "uploads" 播放列表。如果您想要播放最近的视频,只需转到您的频道并按最近的顺序对上传的内容进行排序。这是代码:

<iframe src="https://www.youtube.com/embed/videoseries?list=UUB8OUG89o0QWqmJ2lfzdyIg" seamless allowfullscreen></iframe>

UUB8OUG89o0QWqmJ2lfzdyIg 是我个人上传播放列表的唯一id。要获取播放列表的唯一 ID,请获取您的唯一频道 ID,然后将 C 更改为 U

UCB8OUG89o0QWqmJ2lfzdyIg // channel id
UUB8OUG89o0QWqmJ2lfzdyIg // uploads playlist id

所有的 Youtube 播放列表都有 ID,您只需要找到它们即可。您也可以通过使用 "Play All" 按钮播放完整的播放列表来查找播放列表 ID。这将播放 Youtube 上的整个播放列表,您可以将 id 复制到页面外 url。