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.

2023-05-11 या दिनांकाला. सर्वात नवीन आवृत्ती पाहा.

// ==UserScript==
// @name        YouTube, STOP CHANGING MY VOLUME!
// @namespace   Violentmonkey Scripts
// @match       https://www.youtube.com/watch
// @grant       none
// @version     1.1
// @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;
}