shumin-youtube

按Q点赞,视频结束自动关全屏,彩虹进度条。Press Q to like the video, automatically exit fullscreen when the video ends, and enjoy a rainbow progress bar.

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name               shumin-youtube
// @namespace          http://tampermonkey.net/
// @version            3.1
// @description        按Q点赞,视频结束自动关全屏,彩虹进度条。Press Q to like the video, automatically exit fullscreen when the video ends, and enjoy a rainbow progress bar.
// @author             qianjunlang
// @match              *://*.youtube.com/*
// @icon               https://www.google.com/s2/favicons?sz=64&domain=youtube.com
// @grant              GM_setValue
// @grant              GM_getValue
// @run-at             document-idle
// @noframes
// @license            MIT License
// ==/UserScript==
'use strict';

    var css = `
        .ytp-play-progress {
            background-image: linear-gradient(to left, #FF0000, #FF9900, #FFFF00, #33CC33, #00CCFF, #6633FF, #CC00FF )!important;
        }
        #ytCover {
          font-size: 1em !important;
          color: var(--ytd-searchbox-legacy-button-icon-color)!important;
          /*animation: appear 0.01s;
          animation-iteration-count: 1;*/
        }
    `;
    if (typeof GM_addStyle != "undefined") {
        GM_addStyle(css);
    } else if (typeof PRO_addStyle != "undefined") {
        PRO_addStyle(css);
    } else if (typeof addStyle != "undefined") {
        addStyle(css);
    } else {
        var node = document.createElement("style");
        node.type = "text/css";
        node.appendChild(document.createTextNode(css));
        var heads = document.getElementsByTagName("head");
        if (heads.length > 0) {
            heads[0].appendChild(node);
        } else {
            // no head yet, stick it whereever
            document.documentElement.appendChild(node);
        }
    }

//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    function isVisible(selector) {
        const element = document.querySelector(selector);
        return element && element.offsetParent !== null;
    }

    let cycle_id = setInterval(() => {

        if(
            isVisible('.ytp-endscreen-previous') ||
            isVisible('.ytp-endscreen-next') ||
            isVisible('.ytp-endscreen-content') ||
            isVisible('.html5-endscreen') ||
            false
        ) {
            document.exitFullscreen();
            document.cancelFullScreen();
            document.webkitCancelFullScreen();
        }

    }, 1000);

    document.addEventListener('keydown', function(e) {
        if (e.key === 'Q' || e.key === 'q') {
            const likeButton = document.querySelector('like-button-view-model button');
            if (likeButton) {
                likeButton.click();
                console.log('Q 键被按下,已点赞!');
            } else {
                console.log('未找到点赞按钮!');
            }
        }
    });