Youtube脚本延迟

时间:2017-09-08 19:30:24

标签: javascript youtube

我有一个脚本可以从youtube频道中提取最新视频并将其嵌入我的学校页面。它有效,但有两个问题。

一个它没有立即识别最近发布的视频。 youtube在同步和新帖子注册之前有延迟吗?

两个脚本运行但它确实阻止页面上的其他视频内容显示。知道为什么会这样吗?

我一遍又一遍地看着它并且耗尽了我能想到的任何搜索。

感谢您的帮助!这是代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<iframe id="youtube_video" width="400" height="215"  frameborder="0" allowfullscreen></iframe>

<script>
  var channelID = "UC0gcWgeEVOE7TDEKtLNnSuA";
  $.getJSON('https://api.rss2json.com/v1/api.json?rss_url=https%3A%2F%2Fwww.youtube.com%2Ffeeds%2Fvideos.xml%3Fchannel_id%3D'+channelID, function(data) {
    var link = data.items[0].link;
    var id = link.substr(link.indexOf("=")+1);
    $("#youtube_video").attr("src","https://youtube.com/embed/"+id + "?controls=1&showinfo=0&rel=0");
  });
</script>

2 个答案:

答案 0 :(得分:0)

我不是100%清楚你想要实现的目标 - 但是如果你想要显示超过1个视频,那么你目前只有一个#youtube_video元素。相反,您可能需要为数据数组的每个索引创建一个元素,并创建唯一的ID,例如 #youtube_video + link[i]

这是一个小提琴: https://jsfiddle.net/e620tuy8/

var channelID = "UC0gcWgeEVOE7TDEKtLNnSuA";
$.getJSON('https://api.rss2json.com/v1/api.json?rss_url=https%3A%2F%2Fwww.youtube.com%2Ffeeds%2Fvideos.xml%3Fchannel_id%3D' + channelID, function(data) {
  var container = $('.container');
  for (var i = 0; i < data.items.length; i++) {
    var link = data.items[i].link;
    var id = link.substr(link.indexOf("=") + 1);
    var iframe = '<iframe id="youtube_video_id_' + i + '" src="https://youtube.com/embed/' + id + '?controls=1&showinfo=0&rel=0" width="400" height="215" frameborder="0" allowfullscreen></iframe>'
    container.append(iframe)
  }
});

答案 1 :(得分:0)

发现,答案更多一点。

感谢Frank在这里的回答https://stackoverflow.com/a/43873099/5943182

感谢所有观看过的人。

我仍然不知道为什么最近没有被上面的代码所吸引,但替代方法对我来说非常有效。