YouTube Like/Dislike Shortcut

Enables keyboard shortcuts to like/dislike a video on YouTube.

目前为 2023-12-12 提交的版本。查看 最新版本

// ==UserScript==
// @name        YouTube Like/Dislike Shortcut
// @namespace   will64gamer
// @author      will64gamer
// @description Enables keyboard shortcuts to like/dislike a video on YouTube.
// @include     https://www.youtube.com/*
// @license     MIT
// @version     1.2
// ==/UserScript==

let codeLike = "NumpadAdd";
let codeDislike = "NumpadSubtract";

let videoinfo, like, dislike, sLike, sDislike, tag;

let onvideopage = true;

function findButtons(i = 0) {
  if (!/^\/watch/.test(location.pathname)) {
    if(!/^\/shorts/.test(location.pathname)) {
      onvideopage = false;
      return;
    }
  }

  like = null;
  dislike = null;
  sLike = null;
  sDislike = null;

  videoinfo = document.getElementsByTagName("ytd-video-primary-info-renderer");
  if (videoinfo.length === 1) {
    if(/^\/shorts/.test(location.pathname)) {
      sLike = document.getElementById("like-button").getElementsByTagName('button')[0];
      sDislike = document.getElementById("dislike-button").getElementsByTagName('button')[0];
    } else {
      like = document.getElementsByTagName("like-button-view-model")[0]
        ?.firstElementChild
          ?.firstElementChild;
      dislike = document.getElementsByTagName("dislike-button-view-model")[0]
        ?.firstElementChild
          ?.firstElementChild;
    }
  }
}

window.addEventListener('yt-navigate-finish', findButtons);

let observer = new MutationObserver(findButtons);
observer.observe(document.documentElement, {childList: true, subtree: true});

addEventListener("keypress", function (e) {
  if (!onvideopage) {return;}

  if (e.target.getAttribute("contenteditable") === "true") {return;}

  tag = e.target.tagName.toLowerCase();
  if (tag === "input" || tag === "textarea") {return;}

  switch (e.code) {
    case codeLike:
      if (like) {like.click();}
      else if (sLike) {sLike.click();}
      break;
    case codeDislike:
      if (dislike) {dislike.click();}
      else if (sDislike) {sDislike.click();}
      break;
  }
});

QingJ © 2025

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