Greasy Fork

Greasy Fork is available in English.

百度网盘视频倍速播放

简单的倍速播放脚本,小白作品,欢迎提意见

目前为 2020-06-16 提交的版本,查看 最新版本

// ==UserScript==
// @name         百度网盘视频倍速播放
// @namespace    baidupan-playspeed-control
// @version      1.3.0
// @update       2020/6/17
// @description  简单的倍速播放脚本,小白作品,欢迎提意见
// @github       https://github.com/vikiboss/baidupan-playspeed-control
// @author       vikiboss (https://github.com/vikiboss)
// @grant        none
// @license      MIT
// @include      *://pan.baidu.com/s*
// @include      *://pan.baidu.com/play*
// @include      *://pan.baidu.com/disk/home*
// @include      *://yun.baidu.com/s*
// @include      *://yun.baidu.com/disk/home*
// ==/UserScript==

(function () {
  'use strict';
  // === 随窗口加载后调用本方法 ===
  window.onload = function () {
    // === 按钮界面选项(可根据你的需要自行按照格式修改) ===
    var options = [
      { str: '慢速(x0.5)', rate: 0.5 },
      { str: '较慢(x0.75)', rate: 0.75 },
      { str: '标准(x1.0)', rate: 1.0 },
      { str: '中速(x1.25)', rate: 1.25 },
      { str: '快速(x1.5)', rate: 1.5 },
      { str: '极速(x2.0)', rate: 2.0 },
      { str: '自定义' },
    ];

    // === 定义生成"倍速按钮"的函数 ===
    var generateBtn = function (rateStr, rate) {
      var btn = document.createElement('a');
      btn.className = 'g-button';
      btn.setAttribute('title', '调节播放速度');
      rate = rate || 1.0;
      btn.onclick = function () {
        var DOMrate = window.videojs.getPlayers('video-player').html5player
          .tech_;
        if (rateStr === '自定义') {
          rate = prompt('请输入介于0-5的播放倍速:');
          rate = rate <= 0 || rate > 5 ? DOMrate.playbackRate : rate;
        }
        DOMrate.setPlaybackRate(rate);
      };

      var btnInnerHtml = `<span class="g-button-right">
          <em class="icon icon-speed"></em>
          <span class="text" style="width: auto;">${rateStr}</span>
        </span>`;
      btn.innerHTML = btnInnerHtml;
      return btn;
    };

    // === 去除带有"开通SVIP"提示且会除遮挡按钮的div框 ===
    var vip = document.getElementsByClassName('privilege-box')[0];
    vip.style.display = 'none';

    // === 在原网页的DOM中插入定义了的倍速按钮 ===
    var div = document.getElementsByClassName('video-toolbar-buttonbox')[0];
    var btns = options.map(function (option) {
      return generateBtn(option.str, option.rate);
    });
    btns.forEach(function (node) {
      div.append(node);
    });

    // === 去除多余按钮 ===
    div.childNodes[2].style.display = 'none';
    div.childNodes[3].style.display = 'none';
  };
})();