1

インターネットの使用をよりスムーズにするため (および JavaScript を学習するため) に定期的に行うことのスクリプトを作成し始めました。それらの 1 つは、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();
    }
}

監視されていないものをすべて追加するわけではないことを除いて、それはある程度機能します。どのビデオが追加され、どのビデオが追加されないかは、少しランダムに見えます。

何らかのエラーはありますか?または、サムネイル オブジェクトをループするよりも良い方法はありますか?

編集:わかりました、完全にランダムではありません。その(正しい)順序で最も古い2つと最新のものを追加するようです。購読ページをリロードしてブックマークをもう一度押すと、下から次の 2 つと 2 番目に新しいものが追加されます...

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 に答える