1

我已经开始为我经常做的事情编写脚本,以使我的互联网使用更顺畅(并学习 javascript)。其中之一是将我的 YouTube 订阅框中的所有未看过的视频添加到稍后观看列表中。我在书签里写了这个:

javascript: 
var x = document.getElementsByClassName("contains-addto ");
for (var k = x.length - 1; k >= 0; k--) {
    if (!x[k].classList.contains("watched")) {
        x[k].getElementsByClassName("addto-watch-later-button")[0].click();
    }
}

它有点工作,除了它根本不会添加所有未观看的内容。添加哪些视频和不添加哪些视频似乎有点随机。

有什么错误吗?或者有没有比遍历缩略图对象更好的方法?

编辑:好的,不是完全随机的。它似乎以该(正确)顺序添加了最旧的两个和最新的一个。如果我重新加载订阅页面并再次按书签,它将添加从底部开始的下两个和第二个最新的等等......

4

1 回答 1

0

您需要设置超时,以便 YouTube 不会跳过请求:

javascript:
  (function() {
    let unwatchedVideos = document.querySelectorAll('.contains-addto:not(.watched)');
    let i = unwatchedVideos.length;
    let int = setInterval(function() {
      if (--i >= 0) {
        unwatchedVideos[i].querySelector('.addto-watch-later-button').click();
      } else {
        clearInterval(int);
      }
    }, 300);
  })();

于 2016-03-05T19:45:59.053 回答