阿里网盘播放器防挡字幕

阿里网盘网页播放器老是挡住我的字幕,该脚本用于防止视频控制器挡住字幕,实现方式为简单地将控制器上移

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

// ==UserScript==
// @name         阿里网盘播放器防挡字幕
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  阿里网盘网页播放器老是挡住我的字幕,该脚本用于防止视频控制器挡住字幕,实现方式为简单地将控制器上移
// @author       voeoc
// @match        https://www.aliyundrive.com/*
// @icon         https://www.google.com/s2/favicons?domain=aliyundrive.com
// @require      https://cdn.jsdelivr.net/npm/sweetalert2@11
// @grant        GM_addStyle
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_notification
// @run-at       document-end
// @license MIT
// ==/UserScript==

(function() {
    'use strict';
    const GMKEY_CONTROL_PANEL_BOTTOM_VALUE = "VOEOC_GMKEY_CONTROL_PANEL_BOTTOM_VALUE";
    const GMKEY_CONTROL_PANEL_WIDTH_VALUE = "VOEOC_GMKEY_CONTROL_PANEL_WIDTH_VALUE";
    const GMKEY_CONTROL_PANEL_OPACITY_VALUE = "VOEOC_GMKEY_CONTROL_PANEL_OPACITY_VALUE";
    const GMKEY_POPUP_PANEL_OPACITY_VALUE = "VOEOC_GMKEY_POPUP_PANEL_OPACITY_VALUE";

    const MENU_ACCESS_KEY_CONTROL_PANEL_BOTTOM = "VOEOC_MENU_ACCESS_KEY_CONTROL_PANEL_BOTTOM";
    const MENU_ACCESS_KEY_SETTINGS = "VOEOC_MENU_ACCESS_KEY_SETTINGS";

    var settingsData = []
    var st = document.createElement('style');

    function getSettings() {
        settingsData = [
            GM_getValue(GMKEY_CONTROL_PANEL_BOTTOM_VALUE, 140),
            GM_getValue(GMKEY_CONTROL_PANEL_WIDTH_VALUE, 80),
            GM_getValue(GMKEY_CONTROL_PANEL_OPACITY_VALUE, 0.35),
            GM_getValue(GMKEY_POPUP_PANEL_OPACITY_VALUE, 0.35),
        ]
    }

    function setSettings(newSettingsData) {
        GM_setValue(GMKEY_CONTROL_PANEL_BOTTOM_VALUE, newSettingsData[0])
        GM_setValue(GMKEY_CONTROL_PANEL_WIDTH_VALUE, newSettingsData[1])
        GM_setValue(GMKEY_CONTROL_PANEL_OPACITY_VALUE, newSettingsData[2])
        GM_setValue(GMKEY_POPUP_PANEL_OPACITY_VALUE, newSettingsData[3])
    }

    function applySettings() {
        let head = document.getElementsByTagName('head')[0]
        try{
            head.removeChild(st);
        }catch(e){
            console.log(`voeoc: ${e}`)
        }

        getSettings()
        let css = `
        .video-player--29_72{
            bottom:${settingsData[0]}px;
        }
        :fullscreen .video-player--29_72{
            bottom:${settingsData[0]}px;
        }
        .video-player--29_72{
            width: ${settingsData[1]}%;
        }
        .video-player--29_72.show--Zy5bU{
            opacity: ${settingsData[2]};
        }
        .drawer-wrapper--3Yfpw, .drawer-container--1M9Iy, .drawers--3gZVH > div{
            background-color: #313136${parseInt(parseFloat(settingsData[3]) * 255).toString(16)} !important;
        }
        `
        st = document.createElement('style');
        st.id = 'voeoc-style'
        st.type = 'text/css';
        if(st.styleSheet){
            st.styleSheet.cssText = css;
        }else{
            st.appendChild(document.createTextNode(css));
        }
        head.appendChild(st);
    }

    function registerMenuCommand() {
        let menuId = GM_registerMenuCommand(`设置`,
        function(){
            getSettings()
            const { value: formValues } = Swal.fire({
                html:
                `
                <span>底部高度:<span id='voeoc-swal-input-1-value'>${settingsData[0]}</span>px</span><br /><input id="voeoc-swal-input-1" type="range" min="0" max="800" step="1" value="${settingsData[0]}" oninput="onchange()" onchange="document.getElementById(this.id+'-value').innerHTML=this.value;"><br />
                <span>控制器宽度(按比例):<span id='voeoc-swal-input-2-value'>${settingsData[1]}</span>%</span><br /><input id="voeoc-swal-input-2" type="range" min="10" max="120" step="1" value="${settingsData[1]}" oninput="onchange()" onchange="document.getElementById(this.id+'-value').innerHTML=this.value;"><br />
                <span>鼠标移出时透明度:<span id='voeoc-swal-input-3-value'>${parseFloat(settingsData[2]).toFixed(2)}</span></span><br /><input id="voeoc-swal-input-3" type="range" min="0" max="1" step="0.01" value="${settingsData[2]}" oninput="onchange()" onchange="document.getElementById(this.id+'-value').innerHTML=parseFloat(this.value).toFixed(2);"><br />
                <span>弹出框透明度:<span id='voeoc-swal-input-4-value'>${parseFloat(settingsData[3]).toFixed(2)}</span></span><br /><input id="voeoc-swal-input-4" type="range" min="0" max="1" step="0.01" value="${settingsData[3]}" oninput="onchange()" onchange="document.getElementById(this.id+'-value').innerHTML=parseFloat(this.value).toFixed(2);"><br />
                `,
                focusConfirm: false,
                position: "top-end",
                width: 350,
                preConfirm: () => {
                    let newSettingsData = [
                        parseInt(document.getElementById('voeoc-swal-input-1').value),
                        parseInt(document.getElementById('voeoc-swal-input-2').value),
                        parseFloat(document.getElementById('voeoc-swal-input-3').value),
                        parseFloat(document.getElementById('voeoc-swal-input-4').value)
                    ]
                    setSettings(newSettingsData)
                    applySettings();
                    return newSettingsData
                }
            })
        }, MENU_ACCESS_KEY_SETTINGS);
    }

    function main(){
        applySettings()

        GM_addStyle(`
        .video-player--29_72.show--Zy5bU:hover{
            opacity: 1;
        }
        `);

        // 注册(不可用)菜单项
        registerMenuCommand()
    }

    main()
})();

QingJ © 2025

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