Listen to the audio of the youtube video before opening it. It works on many pages where there are youtube videos such as google searches or invidious instances
// ==UserScript==
// @name Listen to the audio of the youtube video before opening it
// @name:es Escuche el audio del vídeo de youtube antes de abrirlo.
// @namespace https://greasyfork.org/es/users/758165-AlÉxito
// @match https://www.youtube.com/*
// @include http://*
// @include https://*
// @version 1.1
// @author AlExito
// @grant GM_xmlhttpRequest
// @description Listen to the audio of the youtube video before opening it. It works on many pages where there are youtube videos such as google searches or invidious instances
// @description:es Escuche el audio del vídeo de youtube antes de abrirlo. Funciona en muchas paginas donde hay videos de youtube como busquedas de google o instancias odiosas.
// @license MIT feel free to modify improve and share
// ==/UserScript==
document.body.addEventListener("keydown", function(){
let value= event.which;
if(value === 120){ //key "F9"
const a = document.querySelector('a:hover');
if (a) {
document.querySelectorAll("[id='audio-player']").forEach(function(a){
a.remove()})
var myStr = a.href;
var idvid = myStr.replace(/.+\/shorts\//, '').replace(/.+v=/, '').slice(0, 11);
var newStr = myStr.replace(/&.*/, '').replace(location.hostname, 'youtube.com');
GM_xmlhttpRequest({
method: "GET",
url: newStr,
headers: {
"Content-Type": "application/json"
},
onload: function(response) {
const audiourla = response.responseText.match(/"itag":140,"url":".+?","mimeType/);
if(audiourla){
const audiourlb = audiourla.toString().replaceAll("\\u0026","&").replace(/"itag":140,"url":"/, "").replace(/","mimeType/, "");
reprod(audiourlb);
} else {
var audiourlb = "https://yewtu.be/latest_version?id="+idvid+"&itag=140";
reprod(audiourlb);
};
}
});
e.preventDefault();
e.stopPropagation();
}
};
})
function reprod(audiourlb) {
var sound = document.createElement('audio');
sound.id = 'audio-player';
sound.controls = 'controls';
sound.src = audiourlb;
sound.type = 'audio/mp4';
sound.allow = "autoplay";
sound.style.bottom ="0%";
sound.style.left ="-1%";
sound.style.position ="fixed";
sound.style.width ="-webkit-fill-available";
sound.style.zIndex = '999999';
sound.style.transform = "scale(0.8)";
document.body.appendChild(sound);
sound.play();
document.querySelector('audio').playbackRate=1;
var button = document.createElement('button');
button.id = 'audio-player';
button.style.position = 'fixed';
button.style.zIndex = '999999';
button.style.bottom ="2%";
button.style.right ="9%";
button.style.transform = "scale(1.5)translate(0px, 0px)";
button.style.background ="#fff";
button.style.color = "#333";
button.textContent = 'X';
document.body.appendChild(button);
button.onclick = function () {
document.querySelectorAll("[id='audio-player']").forEach(function(a){
a.remove()})
}
}