Greasy Fork is available in English.

YouTube - Display current volume

Displays the volume when it's changing.

სკრიპტის ინსტალაცია?
ავტორის შემოთავაზებული სკრიპტი

შეიძლება მოგეწონოს YouTube - Volume Adjuster by 5%.

სკრიპტის ინსტალაცია
// ==UserScript==
// @name               YouTube - Display current volume
// @namespace          https://gist.github.com/4lrick/7a069ce704be9ac95f00d8fb9c2c9bb2
// @version            1.2
// @description        Displays the volume when it's changing.
// @description:fr     Affiche le volume lorsqu'il change.
// @description:es     Muestra el volumen cuando está cambiando.
// @description:de     Geeft het volume weer als het verandert.
// @description:it     Visualizza il volume quando sta cambiando.
// @description:zh-CN  显示变化时的音量。
// @author             4lrick
// @match              https://www.youtube.com/*
// @icon               https://www.google.com/s2/favicons?sz=64&domain=youtube.com
// @grant              none
// @license            GPL-3.0-only
// ==/UserScript==

(function() {
    'use strict';

    let volumeDisplayTimeout;

    function displayVolume() {
        const player = document.querySelector('#movie_player');
        const volume = player.getVolume();
        let volumeDisplay = document.querySelector('#ytp-video-volume');

        if (!volumeDisplay) {
            const playerContainer = document.querySelector('.html5-video-player');
            if (playerContainer) {
                volumeDisplay = document.createElement('div');
                volumeDisplay.id = 'ytp-video-volume';
                volumeDisplay.style.position = 'absolute';
                volumeDisplay.style.top = '10%';
                volumeDisplay.style.left = '50%';
                volumeDisplay.style.translate = '-50%';
                volumeDisplay.style.textAlign = 'center';
                volumeDisplay.style.background = 'rgba(0,0,0,.5)';
                volumeDisplay.style.color = '#eee';
                volumeDisplay.style.fontSize = '175%';
                volumeDisplay.style.zIndex = '19';
                volumeDisplay.style.padding = '10px 20px';
                volumeDisplay.style.borderRadius = '3%';
                playerContainer.appendChild(volumeDisplay);
            }
        }
        volumeDisplay.textContent = `${volume}%`;
        volumeDisplay.style.display = 'block';
        clearTimeout(volumeDisplayTimeout);
        volumeDisplayTimeout = setTimeout(() => {
            volumeDisplay.style.display = 'none';
        }, 1000);
    }

    function checkVideoExists() {
        const videoElement = document.querySelector('video');
        if (videoElement) {
            videoElement.addEventListener('volumechange', displayVolume);
        }
    }

    const observer = new MutationObserver(checkVideoExists);
    const body = document.body;
    const config = { childList: true, subtree: true };
    observer.observe(body, config);
})();