阿里云盘多倍速播放

增加记忆设定的播放倍速,去掉svip,修复排序等问题

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

// ==UserScript==
// @name         阿里云盘多倍速播放
// @namespace    http://tampermonkey.net/
// @version      0.21
// @description  增加记忆设定的播放倍速,去掉svip,修复排序等问题
// @author       rogerlaw666
// @match        *://www.aliyundrive.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=aliyundrive.com
// @license      MIT
// ==/UserScript==

(function () {
  "use strict";
  window.addEventListener("load", () => {
    let playbackRate = 1
    let video = null;
    let isChanged = false;

    const interval = setInterval(() => {
      video = document.querySelector("video");
      if (video) {
        video.onplay = function () {
          video.playbackRate = playbackRate;
        };
      } else {
        isChanged = false;
      }
      const ul = document.querySelector(".drawer-list-grid--2S0tk");
      if (!ul || !video || isChanged) {
        return;
      }
      const close =
        ul.parentElement.parentElement.previousElementSibling.children.item(1);
      let firstChild = [...ul.children].find(
        (el) => el.firstChild.textContent === "1.5 倍"
      );
      const originChild = firstChild;
      const rates = ["4", "3", "2.5", "2"];
      rates.forEach((rate) => {
        const cloneNode = firstChild.cloneNode(true);
        cloneNode.firstChild.innerHTML = `${rate} 倍`;
        ul.insertBefore(cloneNode, firstChild);
        firstChild = cloneNode;
      });
      ul.insertBefore(originChild, firstChild);
      const backRateNodes = [...ul.children];
      const changeSelectColor = (select) => {
        setTimeout(() => {
          backRateNodes.forEach((item) => {
            item.dataset.isCurrent = "false";
          });
          if (!select.dataset.isCurrent) {
            select.parentElement.dataset.isCurrent = "true";
          } else {
            select.dataset.isCurrent = "true";
          }
        });
      };
      playbackRate = localStorage.getItem("playbackRate") || 1;
      const currentTarget = [...ul.children].find(
        (el) => el.firstChild.textContent === `${playbackRate} 倍`
      );
      changeSelectColor(currentTarget);
      const tagNodes = document.querySelectorAll(".featureTag--3Yw-B");
      for (const node of tagNodes) {
        node.parentNode.style = "display: none;";
      }
      ul.addEventListener("click", (e) => {
        const target = e.target;
        playbackRate = target.textContent.replace(" 倍", "");
        video.playbackRate = playbackRate;
        localStorage.setItem("playbackRate", playbackRate);
        changeSelectColor(target);
        close.click();
      });
      isChanged = true;
    }, 1000);
  });
})();

QingJ © 2025

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