Autoplay Reddit

autoplays videos on reddit

目前為 2016-09-03 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Autoplay Reddit
// @version      1.0
// @description  autoplays videos on reddit
// @author       abbott
// @match        *://www.reddit.com/*
// @namespace https://gf.qytechs.cn/users/59102
// ==/UserScript==

var idx = 0; // video idx
var youtube = '.*(youtu.be\/|v\/|e\/|u\/\w+\/|embed\/|v=)([^#\&\?]*).*'; // youtube video id regex
var player;
// youtube api
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

function onYouTubeIframeAPIReady() {
  if (document.getElementsByClassName('expando-button collapsed video').length <= idx) { // loads next page when done
    document.getElementsByClassName('next-button')[0].getElementsByTagName('a')[0].click();
  }
  var match = document.getElementsByClassName('title may-blank outbound ')[idx].href.match(youtube)[2]; // gets youtube video id

  document.getElementsByClassName('expando-button collapsed video')[idx].click(); // display video
  window.location.hash = document.getElementsByClassName('expando-button video expanded')[0].parentNode.parentNode.id; // move window to video location
  document.getElementsByTagName('iframe')[2].src = 'https://www.youtube.com/embed/' + match + '?enablejsapi=1'; // replaces reddit media iframe
  document.getElementsByTagName('iframe')[2].enablejsapi = "1";

  player = new YT.Player(document.getElementsByTagName('iframe')[2].id, { // attach api to video, should start at index 2
    events: {
      'onReady': onPlayerReady, // autoplay
      'onStateChange': onPlayerStateChange // on end play next video
    }
  });

  idx++;
}

function onPlayerReady() {
  player.playVideo(); // autoplay video
}

function onPlayerStateChange(event) {
  if(event.data === 0) { // when the video ends          
    document.getElementsByClassName('expando-button video expanded')[0].click(); // close video
    onYouTubeIframeAPIReady();
  }
}

document.onkeydown = function(e) { // skips current video if n is pressed
  if (e.keyCode == 78) { // n
    document.getElementsByClassName('expando-button video expanded')[0].click(); // close video
    onYouTubeIframeAPIReady();
  }
};

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址