- // ==UserScript==
- // @name Enhanced Corrupt Dailymotion Ads
- // @namespace https://pastebin.com/tiAedV19
- // @version 2.0
- // @description Corrupts ads on Dailymotion by blocking playback
- // @match https://www.dailymotion.com/*
- // @grant none
- // ==/UserScript==
-
- (function() {
- 'use strict';
-
- const adSources = [
- 'ad',
- 'advertisement',
- 'doubleclick',
- 'adserver',
- 'ads',
- 'tracking',
- 'spotxchange',
- 'krxd.net',
- 'brighttag',
- 'vdopia',
- 'dailymotion.com/ads',
- 'googleads',
- 'adtech',
- 'serving-sys',
- 'adsrvr',
- 'adroll',
- 'adnxs',
- 'adform',
- 'rubiconproject',
- 'appnexus',
- 'zencoder',
- 'floodlight',
- 'criteo',
- 'indexexchange',
- 'openx',
- 'smaato',
- 'yieldmo',
- 'adcolony',
- 'moatads',
- 'brightroll',
- 'liveintent',
- 'taboola',
- 'outbrain',
- 'revcontent',
- 'adsbygoogle',
- 'sovrn',
- 'sonobi',
- 'mopub',
- 'audiencenetwork',
- 'flashtalking',
- 'triplelift',
- 'fetchback',
- 'adbeast',
- 'adpushup',
- 'improvely',
- 'videonow',
- 'extreme-reach',
- 'adview',
- 'adserverpub',
- 'adsnative',
- 'yieldbot',
- 'moat',
- 'improvedigital',
- 'cysend',
- 'media.net',
- 'adswizz',
- 'spotx',
- 'gumgum',
- 'kontera',
- 'nativeads',
- 'adf.ly',
- 'shorte.st',
- 'adfender',
- 'fanboost',
- 'nativo',
- 'adlib',
- 'mediacom',
- 'admatic',
- 'videoplaza',
- 'mocean',
- 'adconion',
- 'justpremium',
- 'openadstream',
- 'admeld',
- 'smaato',
- 'adswapper',
- 'mediaalpha',
- 'brainly',
- 'adblade',
- 'tapad',
- 'adparlor',
- 'adknowledge',
- 'tremorvideo',
- 'radiumone',
- 'uzymedia',
- 'adgear',
- 'cpxinteractive',
- 'whiteshark',
- 'adcontrol',
- 'adspring',
- 'maxymiser',
- 'booster',
- 'customaudience',
- 'geniuslink',
- 'intango',
- 'igum',
- 'leadbolt',
- 'adaction',
- 'buysellads',
- 'clicksor',
- 'zebraads',
- 'advertise.com',
- 'ezanga',
- 'videojug',
- 'avocarrot',
- 'fyber',
- 'yandex',
- 'adlibitum',
- 'popads',
- 'popunder',
- 'atdmt',
- 'adpolicy',
- 'acxiom',
- 'mopub',
- 'criteo',
- 'dynamicyield',
- 'adpiler',
- 'arbitraryads',
- 'adtrader',
- 'adhero',
- 'digitalenvoy',
- 'cocoon',
- 'adshuffler',
- 'backflip',
- 'advangelists',
- 'interclick',
- 'adman',
- 'adscape',
- 'adattic',
- 'adsidian',
- 'adperium',
- 'retargeting',
- 'bidswitch',
- 'adteca',
- 'whaleads',
- 'buyat',
- 'adshuffle',
- 'inmobi',
- 'interscroller',
- 'proxio',
- 'adcloud',
- 'adserving',
- 'adunity',
- 'pof.com',
- 'roboads',
- 'in-ads',
- 'hypeaudience',
- 'yahooads',
- 'vungle',
- 'chartboost',
- 'unityads',
- 'applovin',
- 'adnetwork',
- 'innoads',
- 'adpure',
- 'adsoft',
- 'redefiningads',
- 'mmedia',
- 'weborama',
- 'newads',
- 'adspring',
- 'deputyads',
- 'dcollab',
- 'dsp',
- 'quantcast',
- 'adfuse',
- 'epom',
- 'adext',
- 'rsi',
- 'thetradedesk',
- 'buzzcity',
- 'criteo',
- 'districtm',
- 'plista',
- 'veeboo',
- 'adopt',
- 'admitad',
- 'kargo',
- 'squeezy',
- 'clearcode',
- 'adupay',
- 'spinme',
- 'yuga',
- 'inetwork',
- 'adwallet',
- 'myads',
- 'adfunnel',
- 'unitedads',
- 'adwarrior',
- 'metaad',
- 'intelligentads',
- 'mediacore',
- 'driftrock',
- '360ads',
- 'adclick',
- 'splashad',
- 'adbrokers',
- 'reachlocal',
- 'adiq',
- 'adzero',
- 'adspresso',
- 'netseer',
- 'btrll',
- 'conviva',
- 'bitrate',
- 'adtraction',
- 'adstring',
- 'adviewmedia',
- 'interceptd',
- 'avora',
- 'mindspark',
- 'aolads',
- 'adnow',
- 'adverty',
- 'adcloudmedia',
- 'adoption',
- 'inspireads',
- 'broadstreetads',
- 'exponential',
- 'crossmedia',
- 'triplelift',
- 'lotame',
- 'nexage',
- 'clickable',
- 'dove',
- 'inviqa',
- 'adspark',
- 'addefend',
- 'fastclick',
- 'adnet',
- 'adexchanger',
- 'metricads',
- 'simpleads',
- 'upliftads',
- 'advolcano',
- 'spotx',
- 'twitch',
- 'preroll',
- ];
-
- const isAdSource = (src) => {
- return adSources.some(ad => src.includes(ad));
- };
-
- const corruptAds = () => {
- const originalPlay = HTMLMediaElement.prototype.play;
-
- HTMLMediaElement.prototype.play = function() {
- if (isAdSource(this.src)) {
- return Promise.reject(new Error('Ad playback failed due to connection issues.'));
- }
- return originalPlay.call(this);
- };
- };
-
- const suppressConsoleWarnings = () => {
- const originalError = console.error;
- console.error = function(...args) {
- if (args[0] && typeof args[0] === 'string' && args[0].includes('Reading cookie in cross-site context')) {
- return;
- }
- originalError.apply(console, args);
- };
- };
-
- window.addEventListener('load', () => {
- suppressConsoleWarnings();
- corruptAds();
-
- const observer = new MutationObserver(() => {
- corruptAds();
- });
- observer.observe(document.body, { childList: true, subtree: true });
- });
- })();