In uBlock Origin Ist die Domain jetzt standardmäßig als Malware-Site gelistet:
Wo findet man die Auflistung in uBlockOrigin?
In uBlock Origin Ist die Domain jetzt standardmäßig als Malware-Site gelistet:
Wo findet man die Auflistung in uBlockOrigin?
Falls Du nicht selbst bei Aris nachfragen willst: Was konkret willst Du denn geändert haben?
.. wie man für den Fall, dass Mozilla die Suchleiste entfernt, diese wieder zum Leben erweckt....
Ja, nee is klar... Ich frage hier nach, weil ich auf GitHub wieder radebrechend denglisch kommunizieren muss.
Was soll mir der 2. Satz sagen?
Du hast keine Werbung auf Youtube (schön, ist aber unrelevant für mich) oder ist das eine Aufforderung an mich?
Es geht mir nicht um die Werbung, es geht um die Anzeige der Bildeinstellgrößen...
Seit vor 3 Tagen das o.a. Script aktualisiert wurde, sind die Größen Miniplayer, Kinomodus verschwunden.
// ==UserScript==
// @name Remove Adblock Thing
// @namespace http://tampermonkey.net/
// @version 5.6
// @description Removes Adblock Thing
// @author JoelMatic
// @match https://www.youtube.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com
// @updateURL https://github.com/TheRealJoelmatic/RemoveAdblockThing/raw/main/Youtube-Ad-blocker-Reminder-Remover.user.js
// @downloadURL https://github.com/TheRealJoelmatic/RemoveAdblockThing/raw/main/Youtube-Ad-blocker-Reminder-Remover.user.js
// @grant none
// ==/UserScript==
(function()
{
//
// Config
//
// Enable The Undetected Adblocker
const adblocker = true;
// Enable The Popup remover (pointless if you have the Undetected Adblocker)
const removePopup = false;
// Checks for updates (Removes the popup)
const updateCheck = true;
// Enable debug messages into the console
const debugMessages = true;
// Fix timestamps in the youtube comments for new method
const fixTimestamps = true;
// Enable custom modal
// Uses SweetAlert2 library (https://cdn.jsdelivr.net/npm/sweetalert2@11) for the update version modal.
// When set to false, the default window popup will be used. And the library will not be loaded.
const updateModal = {
enable: true, // if true, replaces default window popup with a custom modal
timer: 5000, // timer: number | false
};
//
// CODE
//
// If you have any suggestions, bug reports,
// or want to contribute to this userscript,
// feel free to create issues or pull requests in the GitHub repository.
//
// GITHUB: https://github.com/TheRealJoelmatic/RemoveAdblockThing
//
// Varables used for adblock
//
// Store the initial URL
let currentUrl = window.location.href;
// Used for after the player is updated
let isVideoPlayerModified = false;
//
// Variables used for updater
//
let hasIgnoredUpdate = false;
//
// Setup
//
//Set everything up here
log("Script started");
if (adblocker) removeAds();
if (removePopup) popupRemover();
if (updateCheck) checkForUpdate();
if (fixTimestamps) timestampFix();
// Remove Them pesski popups
function popupRemover() {
setInterval(() => {
const modalOverlay = document.querySelector("tp-yt-iron-overlay-backdrop");
const popup = document.querySelector(".style-scope ytd-enforcement-message-view-model");
const popupButton = document.getElementById("dismiss-button");
var video = document.querySelector('video');
const bodyStyle = document.body.style;
bodyStyle.setProperty('overflow-y', 'auto', 'important');
if (modalOverlay) {
modalOverlay.removeAttribute("opened");
modalOverlay.remove();
}
if (popup) {
log("Popup detected, removing...");
if(popupButton) popupButton.click();
popup.remove();
video.play();
setTimeout(() => {
video.play();
}, 500);
log("Popup removed");
}
// Check if the video is paused after removing the popup
if (!video.paused) return;
// UnPause The Video
video.play();
}, 1000);
}
// undetected adblocker method
// undetected adblocker method
function removeAds() {
log("removeAds()");
setInterval(() => {
if (window.location.href !== currentUrl) {
currentUrl = window.location.href;
isVideoPlayerModified = false;
clearAllPlayers();
removePageAds();
}
// Fix for youtube shorts
if (window.location.href.includes("shorts")) {
log("Youtube shorts detected, ignoring...");
return;
}
if (isVideoPlayerModified){
removeAllDuplicateVideos();
return;
}
log("Video replacement started!");
//
// remove ad audio
//
var video = document.querySelector('video');
if (video) video.volume = 0;
if (video) video.pause();
if (video) video.remove();
//
// Remove the current player
//
if (!clearAllPlayers()) {
return;
}
/**
* remove the "Ad blockers violate YouTube's Terms of Service" screen for safari
*/
let errorScreen = document.querySelector("#error-screen");
if (errorScreen) {
errorScreen.remove();
}
//
// Get the video ID from the URL
//
let videoID = '';
let playList = '';
let timeStamp = '';
const url = new URL(window.location.href);
const urlParams = new URLSearchParams(url.search);
if (urlParams.has('v')) {
videoID = urlParams.get('v');
} else {
const pathSegments = url.pathname.split('/');
const liveIndex = pathSegments.indexOf('live');
if (liveIndex !== -1 && liveIndex + 1 < pathSegments.length) {
videoID = pathSegments[liveIndex + 1];
}
}
if (urlParams.has('list')) {
playList = "&listType=playlist&list=" + urlParams.get('list');
}
if (urlParams.has('t')) {
timeStamp = "&start=" + urlParams.get('t').replace('s', '');
}
if (!videoID) {
log("YouTube video URL not found.", "e");
return null;
}
log("Video ID: " + videoID);
//
// Create new frame for the video
//
const startOfUrl = "https://www.youtube-nocookie.com/embed/";
const endOfUrl = "?autoplay=1&modestbranding=1&rel=0";
const finalUrl = startOfUrl + videoID + endOfUrl;
const iframe = document.createElement('iframe');
iframe.setAttribute('src', finalUrl);
iframe.setAttribute('frameborder', '0');
iframe.setAttribute('allow', 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share');
iframe.setAttribute('allowfullscreen', true);
iframe.setAttribute('mozallowfullscreen', "mozallowfullscreen");
iframe.setAttribute('msallowfullscreen', "msallowfullscreen");
iframe.setAttribute('oallowfullscreen', "oallowfullscreen");
iframe.setAttribute('webkitallowfullscreen', "webkitallowfullscreen");
iframe.style.width = '100%';
iframe.style.height = '100%';
iframe.style.position = 'absolute';
iframe.style.top = '0';
iframe.style.left = '0';
iframe.style.zIndex = '9999';
iframe.style.pointerEvents = 'all';
const videoPlayerElement = document.querySelector('.html5-video-player');
videoPlayerElement.appendChild(iframe);
log("Finished");
isVideoPlayerModified = true;
}, 500);
removePageAds();
}
//
// logic functionm
//
function removeAllDuplicateVideos() {
const videos = document.querySelectorAll('video');
videos.forEach(video => {
if (video.src.includes('www.youtube.com')) {
video.muted = true;
video.pause();
video.addEventListener('volumechange', function() {
if (!video.muted) {
video.muted = true;
video.pause();
log("Video unmuted detected and remuted");
}
});
video.addEventListener('play', function() {
video.pause();
log("Video play detected and repaused");
});
log("Duplicate video found and muted");
}
});
}
function clearAllPlayers() {
const videoPlayerElements = document.querySelectorAll('.html5-video-player');
if (videoPlayerElements.length === 0) {
console.error("No elements with class 'html5-video-player' found.");
return false;
}
videoPlayerElements.forEach(videoPlayerElement => {
const iframes = videoPlayerElement.querySelectorAll('iframe');
iframes.forEach(iframe => {
iframe.remove();
});
});
console.log("Removed all current players!");
return true;
}
//removes ads on the page (not video player ads)
function removePageAds(){
const sponsor = document.querySelectorAll("div#player-ads.style-scope.ytd-watch-flexy, div#panels.style-scope.ytd-watch-flexy");
const style = document.createElement('style');
style.textContent = `
ytd-action-companion-ad-renderer,
ytd-display-ad-renderer,
ytd-video-masthead-ad-advertiser-info-renderer,
ytd-video-masthead-ad-primary-video-renderer,
ytd-in-feed-ad-layout-renderer,
ytd-ad-slot-renderer,
yt-about-this-ad-renderer,
yt-mealbar-promo-renderer,
ytd-statement-banner-renderer,
ytd-ad-slot-renderer,
ytd-in-feed-ad-layout-renderer,
ytd-banner-promo-renderer-background
statement-banner-style-type-compact,
.ytd-video-masthead-ad-v3-renderer,
div#root.style-scope.ytd-display-ad-renderer.yt-simple-endpoint,
div#sparkles-container.style-scope.ytd-promoted-sparkles-web-renderer,
div#main-container.style-scope.ytd-promoted-video-renderer,
div#player-ads.style-scope.ytd-watch-flexy,
ad-slot-renderer,
ytm-promoted-sparkles-web-renderer,
masthead-ad,
tp-yt-iron-overlay-backdrop,
#masthead-ad {
display: none !important;
}
`;
document.head.appendChild(style);
sponsor?.forEach((element) => {
if (element.getAttribute("id") === "rendering-content") {
element.childNodes?.forEach((childElement) => {
if (childElement?.data.targetId && childElement?.data.targetId !=="engagement-panel-macro-markers-description-chapters"){
//Skipping the Chapters section
element.style.display = 'none';
}
});
}
});
log("Removed page ads (✔️)");
}
function changeTimestamp(timestamp) {
const videoPlayerElements = document.querySelectorAll('.html5-video-player');
videoPlayerElements.forEach(videoPlayerElement => {
const iframes = videoPlayerElement.querySelectorAll('iframe');
iframes.forEach(iframe => {
if (iframe.src.includes("&start=")) {
iframe.src = iframe.src.replace(/&start=\d+/, "&start=" + timestamp);
} else {
iframe.src += "&start=" + timestamp;
}
});
});
}
function timestampFix() {
document.addEventListener('click', function(event) {
const target = event.target;
if (target.classList.contains('yt-core-attributed-string__link') && target.href.includes('&t=')) {
event.preventDefault();
const timestamp = target.href.split('&t=')[1].split('s')[0];
log(`Timestamp link clicked: ${timestamp} seconds`);
changeTimestamp(timestamp);
}
});
}
function observerCallback(mutations) {
let isVideoAdded = mutations.some(mutation =>
Array.from(mutation.addedNodes).some(node => node.tagName === 'VIDEO')
);
if (isVideoAdded) {
log("New video detected, checking for duplicates.");
// Ignore for youtube shorts
if (window.location.href.includes("shorts")) {
log("Youtube shorts detected, ignoring...");
return;
}
removeAllDuplicateVideos();
}
}
const observer = new MutationObserver(observerCallback);
observer.observe(document.body, { childList: true, subtree: true });
//
// Update check
//
function checkForUpdate(){
if (window.top !== window.self && !(window.location.href.includes("youtube.com"))){
return;
}
if (hasIgnoredUpdate){
return;
}
const scriptUrl = 'https://raw.githubusercontent.com/TheRealJoelmatic/RemoveAdblockThing/main/Youtube-Ad-blocker-Reminder-Remover.user.js';
fetch(scriptUrl)
.then(response => response.text())
.then(data => {
// Extract version from the script on GitHub
const match = data.match(/@version\s+(\d+\.\d+)/);
if (!match) {
log("Unable to extract version from the GitHub script.", "e")
return;
}
const githubVersion = parseFloat(match[1]);
const currentVersion = parseFloat(GM_info.script.version);
if (githubVersion <= currentVersion) {
log('You have the latest version of the script. ' + githubVersion + " : " + currentVersion);
return;
}
console.log('Remove Adblock Thing: A new version is available. Please update your script. ' + githubVersion + " : " + currentVersion);
if(updateModal.enable){
// if a version is skipped, don't show the update message again until the next version
if (parseFloat(localStorage.getItem('skipRemoveAdblockThingVersion')) === githubVersion) {
return;
}
// If enabled, include the SweetAlert2 library
const script = document.createElement('script');
script.src = 'https://cdn.jsdelivr.net/npm/sweetalert2@11';
document.head.appendChild(script);
const style = document.createElement('style');
style.textContent = '.swal2-container { z-index: 2400; }';
document.head.appendChild(style);
// Wait for SweetAlert to be fully loaded
script.onload = function () {
Swal.fire({
position: "top-end",
backdrop: false,
title: 'Remove Adblock Thing: New version is available.',
text: 'Do you want to update?',
showCancelButton: true,
showDenyButton: true,
confirmButtonText: 'Update',
denyButtonText:'Skip',
cancelButtonText: 'Close',
timer: updateModal.timer ?? 5000,
timerProgressBar: true,
didOpen: (modal) => {
modal.onmouseenter = Swal.stopTimer;
modal.onmouseleave = Swal.resumeTimer;
}
}).then((result) => {
if (result.isConfirmed) {
window.location.replace(scriptUrl);
} else if(result.isDenied) {
localStorage.setItem('skipRemoveAdblockThingVersion', githubVersion);
}
});
};
script.onerror = function () {
var result = window.confirm("Remove Adblock Thing: A new version is available. Please update your script.");
if (result) {
window.location.replace(scriptUrl);
}
}
} else {
var result = window.confirm("Remove Adblock Thing: A new version is available. Please update your script.");
if (result) {
window.location.replace(scriptUrl);
}
}
})
.catch(error => {
hasIgnoredUpdate = true;
log("Error checking for updates:", "e", error)
});
hasIgnoredUpdate = true;
}
// Used for debug messages
function log(log, level, ...args) {
if(!debugMessages)
return;
const prefix = '🔧 Remove Adblock Thing:';
const message = `${prefix} ${log}`;
switch (level) {
case 'error':
console.error(`❌ ${message}`, ...args);
break;
case 'log':
console.log(`✅ ${message}`, ...args);
break;
case 'warning':
console.warn(`⚠️ ${message}`, ...args);
break;
default:
console.info(`ℹ️ ${message}`, ...args);
}
}
})();
Alles anzeigen
Könnte ein Findiger dies aus dem Script wieder entfernen?
Ggf. liegt es daran, dass ich Violentmonkey nutze? Das war schon früher mal ein Problem. Da mussten Kleinigkeiten im Code angepasst werden.
// Mira_Belle dieses Thema haben wir doch nun wirklich schon oft bis zum Erbrechen mit dir durch dekliniert. Ich weiß wirklich nicht, wieso du dies immer wieder auf den Markt schmeißt und damit Mitlesende verunsicherst.
Höre auf, die Fakten so lange zu verdrehen bis es dir passt, vielen Dank!
Shifty Shellshock aka Seth Binzer Mitgründer und Rapper der Crossover Band Crazy Town ist im Alter von 49 Jahren gestorben.
Der größte Hit war vermutlich Butterfly aus dem Jahr 2000!
Eine Todesursache ist nicht bekannt. Drogen- und Alkoholprobleme waren in der Vergangenheit aber ständiger Begleiter des Musikers.
RIP
Wichtig wäre natürlich auch, dass möglichst alle, die Mozilla zeigen wollen, dass sie die separate Suchleiste nutzen, Telemetrie aktiviert haben. Sonst zieht Mozilla das nicht.
Die ist hier im Nightly, meinem Hauptbrowser sowieso aktiv
Sören Hentzschel Danke soweit! Die Frage nach einer ggf. für mich nötigen Möglichkeit der Änderung via Script wurde leider nicht besprochen..
Sören Hentzschel Gibt es ein Ticket dazu, wo man ggf. seine Meinung hinterlegen kann, dass die Möglichkeit zur Nutzung NICHT entfernt wird?
Wenn dies fruchtlos ist/bleibt, kann man die Funktion via Script beibehalten?
Ich nutze zum Suchen NUR die Suchzeile. Ich habe mich daran gewöhnt, sie ist immer präsent und ich möchte sie nicht missen.
Zum Leeren nutze ich ein Script von@aborix
/* Suchfeld leeren nach 4 Sekunden */
/* Author @aborix */
setTimeout(function() {
if (!window.BrowserSearch)
return;
var searchbar = BrowserSearch.searchBar;
if (!searchbar)
return;
var textbox = searchbar.textbox;
var tId;
textbox.addEventListener('input', function() {
clearTimeout(tId);
tId = setTimeout(function() {
textbox.value = '';
document.getElementById('PopupSearchAutoComplete').hidePopup();
}, 4000);
});
}, 0);
Alles anzeigen
Palli Nachträglich auch von mir alles Gute und vor allem viel Gesundheit..
Die nächsten Gegner dürfen gerne den gleichen Fehler begehen....
Schön erkannt und kommentiert vom Co-Moderator
Merkwürdig, aber mach doch mal, Firefox 127.0 sollte jetzt auch bei dir ankommen..
Um der Aufregung wieder Herr zu werden....
ich nutze das entsprechende Script, habe es gestern so nebenbei mit auch anderen auf eine neue Version gebracht. Nach einem Neustart ging dann die Seite nicht mehr, wie eigentlich erwartet. Mein Schussel war, dass ich die Aktualisierung des Scripts nicht damit in Verbindung gebracht habe. Wer kann ahnen, dass dann der Schalter umgelegt wird... jetzt weiß ich es.
Alles wieder gut, wie ich schon in # 13 vermeldete.
Alles Weitere war dann unnötig!
Danke, das wars... ich hatte wohl irrtümlich die Seite mit dem vorhandenem Script gesperrt... alles wieder gut!