Skip to content

Commit

Permalink
added a undetected ad skipping method and fixed it from removing othe…
Browse files Browse the repository at this point in the history
…r stuff
  • Loading branch information
TheRealJoelmatic committed Oct 15, 2023
1 parent 896aece commit b99936e
Showing 1 changed file with 83 additions and 43 deletions.
126 changes: 83 additions & 43 deletions Youtube-Ad-blocker-Reminder-Remover.user.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,23 @@
// ==/UserScript==
(function()
{
//
// Config
//

// Enable The Undetected Adblocker
const adblocker = true;

// Enable The Popup remover
const removePopup = true;

// Enable debug messages into the console
const debug = true;

//
// CODE
//

// Specify domains and JSON paths to remove
const domainsToRemove = [
'*.youtube-nocookie.com/*'
Expand All @@ -23,62 +40,81 @@
'auxiliaryUi.messageRenderers.enforcementMessageViewModel'
];

const debug = true; // Set to false to disable debug messages

let unpausedAfterSkip = 0; //This is used to check if the video has been unpaused already
// Observe config
const observerConfig = {
childList: true,
subtree: true
};

if (debug) console.log("Remove Adblock Thing: Script started");
//This is used to check if the video has been unpaused already
let unpausedAfterSkip = 0;

if (debug) console.log("Remove Adblock Thing: Remove Adblock Thing: Script started");
// Old variable but could work in some cases
window.__ytplayer_adblockDetected = false;

removeJsonPaths(domainsToRemove, jsonPathsToRemove);
setInterval(() =>
{
const popup = document.querySelector("body > ytd-app > ytd-popup-container > tp-yt-paper-dialog");
if(adblocker) addblocker();
if(removePopup) popupRemover();
if(removePopup) observer.observe(document.body, observerConfig);

const video1 = document.querySelector("#movie_player > video.html5-main-video");
const video2 = document.querySelector("#movie_player > .html5-video-container > video");
// Remove Them pesski popups
function popupRemover() {
removeJsonPaths(domainsToRemove, jsonPathsToRemove);
setInterval(() => {

if (popup)
{
if (debug) console.log("Remove Adblock Thing: Popup detected, removing...");
popup.remove();
unpausedAfterSkip = 2;
if (debug) console.log("Remove Adblock Thing: Popup removed");
}
const popup = document.querySelector(".style-scope ytd-enforcement-message-view-model");

// Check if the video is paused after removing the popup
if (!unpausedAfterSkip > 0) return;
const video1 = document.querySelector("#movie_player > video.html5-main-video");
const video2 = document.querySelector("#movie_player > .html5-video-container > video");

if (popup) {
if (debug) console.log("Remove Adblock Thing: Popup detected, removing...");
popup.remove();
unpausedAfterSkip = 2;
if (debug) console.log("Remove Adblock Thing: Popup removed");
}

if (video1)
{
// UnPause The Video
if (video1.paused) UnPauseVideo();
else if (unpausedAfterSkip > 0) unpausedAfterSkip--;
}
if (video2)
{
if (video2.paused) UnPauseVideo();
else if (unpausedAfterSkip > 0) unpausedAfterSkip--;
}
// Check if the video is paused after removing the popup
if (!unpausedAfterSkip > 0) return;

}, 1000);

// Observe and remove ads when new content is loaded dynamically
const observer = new MutationObserver(() =>
{
removeJsonPaths(domainsToRemove, jsonPathsToRemove);
});
if (video1) {
// UnPause The Video
if (video1.paused) unPauseVideo();
else if (unpausedAfterSkip > 0) unpausedAfterSkip--;
}
if (video2) {
if (video2.paused) unPauseVideo();
else if (unpausedAfterSkip > 0) unpausedAfterSkip--;
}

const observerConfig = {
childList: true,
subtree: true
};
observer.observe(document.body, observerConfig);
}, 1000);
}
// undetected adblocker method
function addblocker()
{
setInterval(() =>
{
const skipBtn = document.querySelector('.videoAdUiSkipButton,.ytp-ad-skip-button');
const ad = [...document.querySelectorAll('.ad-showing')][0];
const sidAd = document.querySelector('ytd-action-companion-ad-renderer');
if (ad)
{
document.querySelector('video').playbackRate = 10;
if(skipBtn)
{
skipBtn.click();
}
}

function UnPauseVideo()
if (sidAd)
{
sidAd.remove();
}
}, 50)
}
// Unpause the video Works most of the time
function unPauseVideo()
{
// Simulate pressing the "k" key to unpause the video
const keyEvent = new KeyboardEvent("keydown",{
Expand Down Expand Up @@ -116,5 +152,9 @@
obj = undefined;
});
}

// Observe and remove ads when new content is loaded dynamically
const observer = new MutationObserver(() =>
{
removeJsonPaths(domainsToRemove, jsonPathsToRemove);
});
})();

0 comments on commit b99936e

Please sign in to comment.