// ==UserScript==
// @name YouTube anti-adblock killer
// @namespace http://tampermonkey.net/
// @version 0.2
// @description This script try to replace the current player with an embed one.
// @author Ilfasidrel
// @match https://*.youtube.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com
// @grant none
// ==/UserScript==
(function () {
var interval = setInterval(() => {
if (window && window.location && window.location.pathname) {
if (window.location.pathname.includes("/embed") || window.location.pathname.includes("/RotateCookiesPage")) {
clearInterval(interval);
}
else if (window.location.pathname.includes("/watch")) {
var urlParams = new URLSearchParams(window.location.search);
if (urlParams.has('v')) {
var videoParams = urlParams.get('v');
var iframeHolder = getIframeHolder(videoParams);
var playerElement = getPlayerElement();
playerElement.style.position = "relative";
stopPlayer();
if (!iframeHolder) {
if (playerElement) {
iframeHolder = createIframeHolder(videoParams);
if (iframeHolder) {
playerElement.appendChild(iframeHolder);
}
}
}
removeUnusedIframeHolder(videoParams);
removeEmbedStyle();
}
}
else {
removeUnusedIframeHolder();
}
}
}, 500);
})();
function createIframeHolder(videoParams) {
var iframeHolder = document.createElement('div');
iframeHolder.style.position = 'absolute';
iframeHolder.style.paddingBottom = '56.25%';
iframeHolder.style.width = '100%';
iframeHolder.style.zIndex = '9';
iframeHolder.style.top = '0';
iframeHolder.classList.add("iframe-holder-adblock");
iframeHolder.classList.add("v-" + videoParams);
iframeHolder.replaceChildren();
iframeHolder.innerHTML = "<iframe style='position: absolute; top: 0; left: 0; width: 100%; height: 100%;' src='https://www.youtube.com/embed/" + videoParams + "?autoplay=1&&modestbranding=1&showinfo=0&rel=0' frameborder='0' allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture' allowfullscreen=''></iframe>";
return iframeHolder;
}
function removeEmbedStyle() {
document.querySelectorAll('iframe').forEach(iframe => {
if (iframe.contentWindow.document.querySelector('.ytp-pause-overlay-container') !== null)
iframe.contentWindow.document.querySelector('.ytp-pause-overlay-container').remove();
if (iframe.contentWindow.document.querySelector('.ytp-show-cards-title') !== null)
iframe.contentWindow.document.querySelector('.ytp-show-cards-title').remove();
})
}
function getPlayerElement() {
var playerElement = document.getElementById('player');
if (playerElement) {
return playerElement;
}
return null;
}
function getIframeHolder(videoParams) {
var elements = document.getElementsByClassName("v-" + videoParams);
if (elements && elements.length > 0) {
return elements[0];
}
return null;
}
function stopPlayer() {
var videos = document.getElementsByTagName("video");
if (videos && videos.length > 0) {
videos[0].pause();
}
}
function removeUnusedIframeHolder(videoParams) {
var elements = document.getElementsByClassName("iframe-holder-adblock");
Array.from(elements).forEach(x => {
if (!videoParams || videoParams && !x.classList.contains("v-" + videoParams))
x.remove();
})
}