Greasy Fork is available in English.
Fixes media skip keys and adds volume control hotkeys (ALT+1|2|3|4|)
// ==UserScript==
// @name YT-FIXED
// @namespace https://www.youtube.com/Zimekk
// @version 2.0
// @icon https://www.youtube.com/s/desktop/80e4974c/img/favicon_144.png
// @description Fixes media skip keys and adds volume control hotkeys (ALT+1|2|3|4|)
// @author Zimeh
// @match *://*.youtube.com/*
// @run-at document-end
// @grant GM_getResourceText
// @grant GM_addStyle
// @grant GM_xmlhttpRequest
// @grant GM_getResourceURL
// @grant GM_xmlhttpRequest
// ==/UserScript==
setInterval(function() {
const volumes = ['0.01', '0.1', '0.5', '1']
function setVol(vol) {
var data = sessionStorage['yt-player-volume'] ? JSON.parse(sessionStorage['yt-player-volume']) : JSON.parse(localStorage['yt-player-volume'])
var subData = JSON.parse(data.data)
if (!vol) vol = subData.volume / 100
document.getElementsByTagName('video')[0].volume = vol
subData.volume = vol * 100
data.data = JSON.stringify(subData)
localStorage['yt-player-volume'] = sessionStorage['yt-player-volume'] = JSON.stringify(data)
}
if (!window.navigator.mediaSession.metadata.canSkip) {
window.navigator.mediaSession.metadata.canSkip = true
window.navigator.mediaSession.setActionHandler('previoustrack', function() {
if (document.getElementsByClassName('ytp-prev-button')[0] && document.getElementsByClassName('ytp-prev-button')[0].style.display !== 'none') document.getElementsByClassName('ytp-prev-button')[0].click();
else history.back()
});
window.navigator.mediaSession.setActionHandler('nexttrack', function() {
document.getElementsByClassName('ytp-next-button')[0].click()
});
document.addEventListener('keydown', (event) => {
const code = parseInt(event.key) - 1
if (!isNaN(code) && volumes[code] && event.altKey) setVol(volumes[code])
})
}
if (document.getElementsByTagName('video')[0]) setVol()
}, 1000)