Control Embedded YT iFrames with postMessage
// ==UserScript==
// @name YT Embed Control Message Receiver
// @namespace salembeats
// @version 1.2
// @description Control Embedded YT iFrames with postMessage
// @author Cuyler Stuwe (salembeats)
// @include https://www.youtube.com/embed/*
// @grant none
// ==/UserScript==
function showOverlay() {
let overlayDiv = document.createElement("DIV");
overlayDiv.style.position = "fixed";
overlayDiv.style.left = "50%";
overlayDiv.style.transform = "translateX(-50%)";
overlayDiv.style.top = "0px";
overlayDiv.style.zIndex = Number.MAX_SAFE_INTEGER;
overlayDiv.style.backgroundColor = "black";
overlayDiv.style.color = "white";
overlayDiv.style.pointerEvents = "none";
overlayDiv.innerText = "Cuyler's YT Embed Control Message Receiver";
document.body.insertAdjacentElement('afterend', overlayDiv);
}
function playAtDoubleSpeed() {
let settingsButton = document.querySelector(".ytp-settings-button");
settingsButton.click();
document.querySelectorAll(".ytp-menuitem-content").forEach( function(el) {
if( el.textContent.includes("Normal") ) {
el.click();
return;
}
});
document.querySelectorAll(".ytp-menuitem-label").forEach( function(el) {
if( el.textContent.includes("2") ) {
el.click();
return;
}
});
}
(function main() {
showOverlay();
playAtDoubleSpeed();
e = window;
while (e.frameElement !== null) {e = e.parent;}
e.parent.focus();
})();