🏠 

YouTube, STOP CHANGING MY VOLUME!

Detects when YouTube tries to do "loudness normalization" and sets the volume back to what's set on the volume slider.


安装此脚本?
// ==UserScript==
// @name        YouTube, STOP CHANGING MY VOLUME!
// @namespace   Violentmonkey Scripts
// @match       https://www.youtube.com/watch
// @grant       none
// @version     1.2
// @author      Elara6331 <[email protected]>
// @license     GPLv3
// @description Detects when YouTube tries to do "loudness normalization" and sets the volume back to what's set on the volume slider.
// ==/UserScript==
window.onload = () => {
player = document.querySelector('video');
volumeHandle = document.querySelector('.ytp-volume-slider-handle');
function sliderDistance() {
if (player.parentElement.parentElement.classList.contains('ytp-big-mode')) {
return 60;
} else {
return 40;
}
}
function checkVolume() {
// Get the distance in pixels of the volume slider handle from the beginning of the slider
var volumeHandleLeft = volumeHandle.style.left.substr(0, volumeHandle.style.left.length - 2);
// Divide by the maximum distance to get the desired volume value
var volumeHandleValue = parseFloat(volumeHandleLeft) / sliderDistance();
if (volumeHandleValue != player.volume) {
console.warn("Volume discrepancy detected. YouTube is up to its shenanigans again. Changing volume from " + player.volume * 100 + "% to " + volumeHandleValue * 100 + "%");
player.volume = volumeHandleValue;
}
}
player.onvolumechange = checkVolume;
player.onplaying = checkVolume;
}