巴哈姆特

首頁 哈啦區 電腦應用綜合討論

【密技】YT又双叒叕更新了 我也又双叒叕更新 V0112 NEW

追蹤話題

【密技】YT又双叒叕更新了 我也又双叒叕更新 V0112 NEW

網路應用
風影雪 (upc138697) 2023-10-15 21:19:58
#1
不想擋廣告的人 可以不用點進來 沒人強迫你 不用裝著正義魔人的樣子在樓下找人吵架
PC適用
edge chrome 適用
安裝此擴充 ublock 如果有安裝舊版的 記得先移除重裝一次讓他版本更新 應該就能正常使用 然後開啟yt的時候會卡一下白畫面正常等一下就可以順利看影片了
https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=zh-TW&pli=1
搞定
另外之前有安裝腳本的朋友們 記得把腳本關掉 再使用這個擴充 不用刪除 以防萬一哪天又失效
如果被檔 移除擴充 清除所有暫存瀏覽紀錄 瀏覽器關掉重開 重裝擴充 復活(此方法自己用都有效
然後有被封鎖到的朋友們 請把www.youtube.com這個加入ublock的信任清單 然後使用19f的方法不用移除


如有失效麻煩下面幫我回報一下謝謝
如此擴充失效請轉至19樓 感謝

看較舊的 194 則留言

釘宮病發病中: B16 2023-10-16 00:48

不破壞只想支持創作者卻不想被yt抽成的觀眾的體驗怎麼賣premium,yt又不管創作者死活。

الرعد الأسود: B59 2023-10-17 12:29

#B58:3473410# 這間公司很奇怪 用各種手段搞觀看者又搞創作者 真的是不噁心人不會罷休

AR: B6 2023-10-15 22:26

問就是EDGE+ADGUARD

風影雪: B207 04-19 23:18 編輯

#B206:3576327# 我不太確定 是什麼的問題 因為我edge 目前都正常 前天是有遇到失效 砍掉重裝就好了 然後我也沒把yt放白名單 都給他自己過濾 要放白名單的只有巴哈動漫瘋而已

路過的圍觀群眾: B208 04-21 22:32 編輯

轉個新消息→https://forum.gamer.com.tw/C.php?bsn=60030&snA=643509 竄改猴舊腳本也失效了,需要去手動更新→https://greasyfork.org/zh-TW/scripts/459541-youtube%E5%8E%BB%E5%B9%BF%E5%91%8A-youtube-ad-blocker

хар аянга (black54681) 2023-10-16 14:48:27
CC
#2

看較舊的 171 則留言

專職跑龍套: B46 2023-10-16 20:40

老子就是詐騙廣告擋好擋滿,有值得贊助的創作者我自己會去私下抖內,就這麼簡單,道德警察就自己自嗨吧ㄏㄏ

阿冠(ぐら我老婆): B12 2023-10-16 19:00

#B9:3509579# YT廣告一堆不審核的就直接上 一堆詐騙股票廣告 狗才看白癡廣告

大鴨鴨+: B19 2023-10-16 20:10

某樓真的是有夠奴 難怪台灣這麼多貫老闆 被當韭菜還沒知覺

Laina: B185 2023-11-09 19:23 編輯

edge這方法到今天還有用 其他擋廣告還有甚麼加速目前都失效了 今天看到廉價手遊的垃圾廣告 廣告品質這麼差YT都不把關 我真的覺得該擋

風影雪: B186 2023-11-12 18:16

#B185:3523143# 原本方法也是有用 只是考慮到比較複雜 安裝這個擴充是比較快又簡單 為了防止失效我有在樓下備份XD

#3此文章已由原作者(upc138697)刪除

水玥 (moehekate) 2023-10-16 18:52:10
#4
我是用另外一招,等跳出警告後使用這個選警告的UI,有點像之前的巴哈猜你喜歡的屏蔽方式
REI: B1 2023-10-17 09:09

雖然能看但會暫停影片

超猛硬漢獎獎杯: B2 2023-10-18 12:47

檔完變成整個黑的耶

—— (phs100) 2023-10-17 01:09:06
#5
不知道這怎麼辦

Microsoft Edge 瀏覽器提供很好的安全保護,提供三個層級的追蹤保護:基本、平衡(預設)和嚴格。「嚴格」模式會同時限制了Google 等公司的追蹤能力,包括了偵測內容和廣告。
因此,Google 決定出大招,無論 Microsoft Edge 瀏覽器有否使用 Ad Blocker,只要偵測到使用「嚴格」追蹤保護模式,部份地區用戶已不能正常瀏覽影片,用戶會看到一則訊息,表示廣告攔截器違反了 YouTube 的條款。
來源:

Ivan Lo: B1 2023-10-17 03:25

我是 Edge +嚴格模式+ ad block plus 😂😂

Ivan Lo: B2 2023-10-17 03:26

目前有跳出偵測,但還是可以按右上角叉叉。

大鴨鴨+: B3 2023-10-17 03:42

微軟有對策的話就有好戲看了

灰孤狼: B5 2023-10-27 15:32

#B3:3519497# 目前也在看這把火可以燒多望,Chrome看樣子真的會下去畢竟同企業,真要噁心使用者串起來可以更噁心

nanri (nanri) 2023-10-17 03:17:45
CC
#6
"擋廣告"屬於個人自由意志之決定,
並沒有什麼對與錯,
就像你看無線電視、聽廣播一樣,一到廣告時間可以直接轉台,
平台當然可以對擋廣告的人採取技術行動,舉例是斷流、ban用戶,
不過並不代表說任何人可以對"擋廣告"這個行為做嘲笑、諷刺等行為。
我只看到上面有一些人打著"使用者付費"這個大旗來行使歧視之行為,
真的是不知道該說些什麼啦,除非你是廠商啦,
不然在這裡當道德魔人實在是不知所云....

看較舊的 109 則留言

Xun: B89 2023-10-19 10:02

現在廣告比以前還誇張都強迫你看15秒不給跳過還要連續看兩次⋯⋯

灰孤狼: B114 2023-10-27 15:39

#B32:3499496# 很佩服有那麼多活力給槓精講道理,槓精都直接忽略無視。你越理槓精他越爽圖的就是個寂寞需要人抬槓

nanri: B115 2023-10-27 15:54

#B114:3506147# 反正那些人只會講合約、使用者付費而已,根本沒在講什麼平台應盡義務...說白了簡直就像廠商派來的代表,以及付費好棒棒的韭菜

nanri: B116 2023-10-27 15:56

他們愛槓愛談這個,那我也就堅持自己個觀點啊,頂多完全無交集

悠理毓兒: B117 2023-11-13 12:31

#B112:3504185# Linux + Brave + tar + gzip 使用者路過 .w.

REI (Rain9471) 2023-10-17 09:21:00
#7
笑死

看較舊的 12 則留言

普渡慈航: B1 2023-10-17 09:45

vip等級測試中,未來解鎖VIP1-10級獲得各種通行證獎勵

nanri: B14 2023-10-27 00:30

#B13:3502987# 真不知道一個平台商把廣告塞好塞滿,甚至是塞詐騙廣告,都很少看到那堆按bp的人出來解釋...是單細胞生物嗎?

珍惜生命 遠離DRG: B15 2023-10-27 00:34

#B14:3502993# 也不用和他們解釋 反正那些盤子能扯的也就那套鬼道理 拉大家一起當盤子

shineܤ: B16 2023-11-07 21:28

...

声聞士波修: B17 2023-12-30 02:19

uBlock Origin又失效了,YT真的噁心到極點

聯邦屌插菊 (hhh855124) 2023-10-18 21:10:17
#8
// ==UserScript==
// @name         YouTube去广告 YouTube AD Blocker
// @name:zh-CN   YouTube去广告
// @name:zh-TW   YouTube去廣告
// @name:zh-HK   YouTube去廣告
// @name:zh-MO   YouTube去廣告
// @namespace    http://tampermonkey.net/
// @version      5.95
// @description         这是一个去除YouTube广告的脚本,轻量且高效,它能丝滑的去除界面广告和视频广告,包括6s广告。This is a script that removes ads on YouTube, it's lightweight and efficient, capable of smoothly removing interface and video ads, including 6s ads.
// @description:zh-CN   这是一个去除YouTube广告的脚本,轻量且高效,它能丝滑的去除界面广告和视频广告,包括6s广告。
// @description:zh-TW   這是一個去除YouTube廣告的腳本,輕量且高效,它能絲滑地去除界面廣告和視頻廣告,包括6s廣告。
// @description:zh-HK   這是一個去除YouTube廣告的腳本,輕量且高效,它能絲滑地去除界面廣告和視頻廣告,包括6s廣告。
// @description:zh-MO   這是一個去除YouTube廣告的腳本,輕量且高效,它能絲滑地去除界面廣告和視頻廣告,包括6s廣告。
// @author       iamfugui
// @match        *://*.youtube.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=YouTube.com
// @grant        none
// @license MIT
// ==/UserScript==
(function() {
    `use strict`;

    //界面广告选择器
    const cssSeletorArr = [
        `#masthead-ad`,//首页顶部横幅广告.
        `ytd-rich-item-renderer.style-scope.ytd-rich-grid-row #content:has(.ytd-display-ad-renderer)`,//首页视频排版广告.
        `.video-ads.ytp-ad-module`,//播放器底部广告.
        `tp-yt-paper-dialog:has(yt-mealbar-promo-renderer)`,//播放页会员促销广告.
        `ytd-engagement-panel-section-list-renderer[target-id="engagement-panel-ads"]`,//播放页右上方推荐广告.
        `#related #player-ads`,//播放页评论区右侧推广广告.
        `#related ytd-ad-slot-renderer`,//播放页评论区右侧视频排版广告.
        `ytd-ad-slot-renderer`,//搜索页广告.
        `yt-mealbar-promo-renderer`,//播放页会员推荐广告.
        `ad-slot-renderer`,//M播放页第三方推荐广告
        `ytm-companion-ad-renderer`,//M可跳过的视频广告链接处
    ];

    window.dev=true;//开发使用

    /**
    * 将标准时间格式化
    * @param {Date} time 标准时间
    * @param {String} format 格式
    * @return {String}
    */
    function moment(time, format = `YYYY-MM-DD HH:mm:ss`) {
        // 获取年⽉⽇时分秒
        let y = time.getFullYear()
        let m = (time.getMonth() + 1).toString().padStart(2, `0`)
        let d = time.getDate().toString().padStart(2, `0`)
        let h = time.getHours().toString().padStart(2, `0`)
        let min = time.getMinutes().toString().padStart(2, `0`)
        let s = time.getSeconds().toString().padStart(2, `0`)
        if (format === `YYYY-MM-DD`) {
            return `${y}-${m}-${d}`
        } else {
            return `${y}-${m}-${d} ${h}:${min}:${s}`
        }
    }

    /**
    * 输出信息
    * @param {String} msg 信息
    * @return {undefined}
    */
    function log(msg) {
        if(!window.dev){
            return false;
        }
        console.log(`${moment(new Date())}  ${msg}`)
    }

    /**
    * 获取当前url的参数,如果要查询特定参数请传参
    * @param {String} 要查询的参数
    * @return {String || Object}
    */
    function getUrlParams(param) {
        // 通过 ? 分割获取后面的参数字符串
        let urlStr = location.href.split(`?`)[1]
        if(!urlStr){
            return ``;
        }
        // 创建空对象存储参数
        let obj = {};
        // 再通过 & 将每一个参数单独分割出来
        let paramsArr = urlStr.split(`&`)
        for(let i = 0,len = paramsArr.length;i < len;i++){
            // 再通过 = 将每一个参数分割为 key:value 的形式
            let arr = paramsArr[i].split(`=`)
            obj[arr[0]] = arr[1];
        }

        if(!param){
            return obj;
        }

        return obj[param]||``;
    }

    /**
    * 生成去除广告的css元素style并附加到HTML节点上
    * @param {String} styles 样式文本
    * @return {undefined}
    */
    function generateRemoveADHTMLElement(styles) {
        //如果已经设置过,退出.
        if (document.getElementById(`RemoveADHTMLElement`)) {
            log(`屏蔽页面广告节点已生成`);
            return false
        }

        //设置移除广告样式.
        let style = document.createElement(`style`);//创建style元素.
        style.id = `RemoveADHTMLElement`;
        (document.querySelector(`head`) || document.querySelector(`body`)).appendChild(style);//将节点附加到HTML.
        style.appendChild(document.createTextNode(styles));//附加样式节点到元素节点.
        log(`生成屏蔽页面广告节点成功`)

    }

    /**
    * 生成去除广告的css文本
    * @param {Array} cssSeletorArr 待设置css选择器数组
    * @return {String}
    */
    function generateRemoveADCssText(cssSeletorArr){
        cssSeletorArr.forEach((seletor,index)=>{
            cssSeletorArr[index]=`${seletor}{display:none!important}`;//遍历并设置样式.
        });
        return cssSeletorArr.join(` `);//拼接成字符串.
    }

    /**
    * 触摸事件
    * @return {undefined}
    */
    function nativeTouch(){
        const minNum = 100;
        const maxNum = 999;
        const randomNum = (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum)/1000;

        let element =this;
        // 创建 Touch 对象
        let touch = new Touch({
            identifier: Date.now(),
            target: element,
            clientX: 111+randomNum,
            clientY: 222+randomNum,
            radiusX: 333+randomNum,
            radiusY: 444+randomNum,
            rotationAngle: 0,
            force: 1
        });

        // 创建 TouchEvent 对象
        let touchStartEvent = new TouchEvent("touchstart", {
            bubbles: true,
            cancelable: true,
            view: window,
            touches: [touch],
            targetTouches: [touch],
            changedTouches: [touch]
        });

        // 分派 touchstart 事件到目标元素
        element.dispatchEvent(touchStartEvent);

        // 创建 TouchEvent 对象
        let touchEndEvent = new TouchEvent("touchend", {
            bubbles: true,
            cancelable: true,
            view: window,
            touches: [],
            targetTouches: [],
            changedTouches: [touch]
        });

        // 分派 touchend 事件到目标元素
        element.dispatchEvent(touchEndEvent);
    }

    /**
    * 跳过广告
    * @return {undefined}
    */
    function skipAd(mutationsList, observer) {
        let video = document.querySelector(`.ad-showing video`) || document.querySelector(`video`);//获取视频节点
        let skipButton = document.querySelector(`.ytp-ad-skip-button`);
        let shortAdMsg = document.querySelector(`.video-ads.ytp-ad-module .ytp-ad-player-overlay`);

        if(!skipButton && !shortAdMsg){
            log(`######广告不存在######`);
            return false;
        }

        //拥有跳过按钮的广告.
        if(skipButton)
        {
            log(`普通视频广告~~~~~~~~~~~~~`);
            log(`总时长:`);
            log(`${video.duration}`)
            log(`当前时间:`);
            log(`${video.currentTime}`)
            // 跳过广告.
            skipButton.click();//PC
            nativeTouch.call(skipButton);//Phone
            log(`按钮跳过了该广告~~~~~~~~~~~~~`);
            return false;//终止
        }

        //没有跳过按钮的短广告.
        if(shortAdMsg){
            log(`强制视频广告~~~~~~~~~~~~~`);
            log(`总时长:`);
            log(`${video.duration}`)
            log(`当前时间:`);
            log(`${video.currentTime}`)
            video.currentTime = video.duration;
            log(`强制结束了该广告~~~~~~~~~~~~~`);
            return false;//终止
        }
    }

    /**
    * 去除播放中的广告
    * @return {undefined}
    */
    function removePlayerAD(){

        //如果已经在运行,退出.
        if (document.getElementById(`removePlayerAD`)) {
            log(`去除播放中的广告功能已在运行`);
            return false
        }
        //设置运行tag.
        let style = document.createElement(`style`);
        style.id = `removePlayerAD`;
        (document.querySelector(`head`) || document.querySelector(`body`)).appendChild(style);//将节点附加到HTML.

        let observer;//监听器
        let timerID;//定时器

        //开始监听
        function startObserve(){
            //广告节点监听
            const targetNode = document.querySelector(`.video-ads.ytp-ad-module`);

            //这个视频不存在广告
            if(!targetNode){
                log(`这个视频不存在广告`);
                return false;
            }

            //监听视频中的广告并处理
            const config = {childList: true, subtree: true };// 监听目标节点本身与子树下节点的变动
            observer = new MutationObserver(skipAd);// 创建一个观察器实例并设置处理广告的回调函数
            observer.observe(targetNode, config);// 以上述配置开始观察广告节点

            timerID=setInterval(skipAd, 512);//漏网鱼

        }

        //结束监听
        function closeObserve(){
            observer.disconnect();
            observer = null;
            clearInterval(timerID);
        }

        //轮询任务
        setInterval(function(){
            //视频播放页
            if(getUrlParams(`v`)){
                if(observer){
                    return false;
                }
                startObserve();
            }else{
                //其它界面
                if(!observer){
                    return false;
                }
                closeObserve();
            }
        },16);

        log(`运行去除播放中的广告功能成功`)
    }

    /**
    * main函数
    */
    function main(){
        generateRemoveADHTMLElement(generateRemoveADCssText(cssSeletorArr));//移除界面中的广告.
        removePlayerAD();//移除播放中的广告.
    }

    if (document.readyState === `loading`) {
        log(`YouTube去广告脚本即将调用:`);
        document.addEventListener(`DOMContentLoaded`, main);// 此时加载尚未完成
    } else {
        log(`YouTube去广告脚本快速调用:`);
        main();// 此时`DOMContentLoaded` 已经被触发
    }

})();// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://forum.gamer.com.tw/Co.php?bsn=60030&sn=2445857
// @icon         https://www.google.com/s2/favicons?sz=64&domain=gamer.com.tw
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
})();



我照著複製是這樣,請問是哪裡出錯了嗎? 抱歉我程式小白不懂該如何操作...
我另外也有用 ADguard、Ubloc、ADblock 不知是否會因此相衝

看較舊的 10 則留言

loveteana: B11 2023-11-07 00:11

有加入白名單且確認腳本沒問題

loveteana: B12 2023-11-07 00:39

機器是steamdeck 跟rogally

loveteana: B13 2023-11-07 00:39

一般pc可以用

神: B14 2023-11-07 20:26

#B8:3532939# 白名單是什麼

loveteana: B15 2023-11-07 22:45

#B14:3537447# 就是允許清單

陪貓咪逛街 (dear61834) 2023-10-18 23:01:36
#9
我沒有花yt premium
我是等完秒數再按略過廣告
或等完它指定的廣告時間結束
我幾乎沒有看到詐騙廣告




圖片中是yt推播給我的廣告
我無聊跑去看yt說明
猜測應該可以設定個人化廣告
不妨試試看開啟個人化廣告

建議最好避免使用油猴
油猴本身無毒
但配合油猴安裝第三方插件有中毒風險
自行評估


人類至上: B1 2023-10-19 09:52 編輯

真好不會看到詐騙廣告,前一陣子超級多投資廣告一看就知道詐騙。每次看到都檢舉,過好一段時間才沒有詐騙廣告。

MaTt: B2 2023-10-19 13:56

沒想到有人手機竟然還有廣告,都是revanced的年代了,還看廣告~

KoGaSenRx: B3 2023-10-20 19:01

YT 我看過一堆 股票、虛擬貨幣交易平台,前幾天手機還看到 [ 20TB SSD 行動硬碟 ] 的廣告...你說呢?

陪貓咪逛街: B4 2023-10-20 20:40

你沒有設置個人化廣告吧,它會篩選出你最近導覽的東西提供適合的廣告,例如我常導覽購物平台它就會推薦我pchome、momo、酷碰

KoGaSenRx: B5 2023-10-20 20:42

#B4:3510344# 所以那些說沒看到 詐騙 跟 投資廣告的 就是少數,多數人不會去另外設定,更別說沒登入YT會員帳號的 觀光客..

哈寶寶 (wwwww0931) 2023-10-18 23:41:20
#10
道高一尺 魔高一丈
來看看是Google團隊工程師厲害呢
還是"全球"民間工程師厲害

仙拚仙,看誰先厭倦誰先累了不寫了
目前也是先暫時用無痕模式加減看
過段時間應該又會恢復正常了


看較舊的 2 則留言

鐵無情: B3 2023-10-19 01:34

#B1:3493864# 看廣告沒甚麼但是詐騙廣告真的太多了

好想離職: B4 2023-10-20 17:59

[nanri:nanri]沒差,一般人也就用別人寫的插件,也不用出多少心力

nanri: B5 2023-10-20 18:01

#B4:3494695# 就不定時會被噁心一下,會覺得煩吧

御姐+蘿莉=雙飛: B6 2023-10-21 09:45

當然是民間的神人利害 各行業在防盜版有哪些真的成功的 不就出大絕一直告

灰塵: B7 2023-10-21 14:39

YT理論上是不可能成功的,畢竟廣告跟影片都是傳資料過來顯示,只要能分辨出廣告的流量且不顯示出來就好。

你還有什麼問題 (sanity1314) 2023-10-18 23:46:08
#11
哇,我裝了以後YT變得讀取好快喔
大家有這種感覺嗎??

以前鼠標一道影片上都要幾秒才會小視窗撥放
現在是直接就撥放
看影片讀取條也遙遙領先

我就是低能咬我阿: B1 2023-10-19 01:58

光頭傑: B2 2023-10-19 09:15 編輯

遙遙領先啊!會不會你裝了以後電腦硬體也自動升級了

REI: B3 2023-10-19 09:28 編輯

有沒有想過youtube的廣告影片從來都是高畫質且絕不會lag,然後正片就開始低畫質卡緩衝

準 (zxc811030zxc) 2023-10-19 09:17:10
#12
沒有言論自由的平台,跟人談什麼廣告?
而且廣告也不會審核,一堆垃圾廣告
現在要開始抓擋廣告?
平台死好,對創作者也沒好哪去,限流亂黃標垃圾AI審查
早就一堆人不爽這平台了

Thomas: B1 2023-10-19 11:15

讓我想起去年的LoFi Girl頻道不經審查被亂下架,這頻道我幾乎每天聽:https://reurl.cc/jv9X6q

利維坦: B2 2023-10-20 21:46

真的爛死 我大廢哥的迷因全員參戰片也被黃標 到底黃標沙小 搞笑片而已 其他例子頻道主也是

沖田總蛙 (a26220342) 2023-10-19 22:37:42
#13
我是有多打還是少打嗎 怎麼YT沒顯示腳本執行 可是從巴哈貼腳本的話就會顯示巴哈有執行腳本
// ==UserScript==
// @name         YouTube去广告 YouTube AD Blocker
// @name:zh-CN   YouTube去广告
// @name:zh-TW   YouTube去廣告
// @name:zh-HK   YouTube去廣告
// @name:zh-MO   YouTube去廣告
// @namespace    http://tampermonkey.net/
// @version      5.95
// @description         这是一个去除YouTube广告的脚本,轻量且高效,它能丝滑的去除界面广告和视频广告,包括6s广告。This is a script that removes ads on YouTube, it's lightweight and efficient, capable of smoothly removing interface and video ads, including 6s ads.
// @description:zh-CN   这是一个去除YouTube广告的脚本,轻量且高效,它能丝滑的去除界面广告和视频广告,包括6s广告。
// @description:zh-TW   這是一個去除YouTube廣告的腳本,輕量且高效,它能絲滑地去除界面廣告和視頻廣告,包括6s廣告。
// @description:zh-HK   這是一個去除YouTube廣告的腳本,輕量且高效,它能絲滑地去除界面廣告和視頻廣告,包括6s廣告。
// @description:zh-MO   這是一個去除YouTube廣告的腳本,輕量且高效,它能絲滑地去除界面廣告和視頻廣告,包括6s廣告。
// @author       iamfugui
// @match        *://*.youtube.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=YouTube.com
// @grant        none
// @license MIT
// ==/UserScript==
(function() {
    `use strict`;
 
    //界面广告选择器
    const cssSeletorArr = [
        `#masthead-ad`,//首页顶部横幅广告.
        `ytd-rich-item-renderer.style-scope.ytd-rich-grid-row #content:has(.ytd-display-ad-renderer)`,//首页视频排版广告.
        `.video-ads.ytp-ad-module`,//播放器底部广告.
        `tp-yt-paper-dialog:has(yt-mealbar-promo-renderer)`,//播放页会员促销广告.
        `ytd-engagement-panel-section-list-renderer[target-id="engagement-panel-ads"]`,//播放页右上方推荐广告.
        `#related #player-ads`,//播放页评论区右侧推广广告.
        `#related ytd-ad-slot-renderer`,//播放页评论区右侧视频排版广告.
        `ytd-ad-slot-renderer`,//搜索页广告.
        `yt-mealbar-promo-renderer`,//播放页会员推荐广告.
        `ad-slot-renderer`,//M播放页第三方推荐广告
        `ytm-companion-ad-renderer`,//M可跳过的视频广告链接处
    ];
 
    window.dev=true;//开发使用
 
    /**
    * 将标准时间格式化
    * @param {Date} time 标准时间
    * @param {String} format 格式
    * @return {String}
    */
    function moment(time, format = `YYYY-MM-DD HH:mm:ss`) {
        // 获取年⽉⽇时分秒
        let y = time.getFullYear()
        let m = (time.getMonth() + 1).toString().padStart(2, `0`)
        let d = time.getDate().toString().padStart(2, `0`)
        let h = time.getHours().toString().padStart(2, `0`)
        let min = time.getMinutes().toString().padStart(2, `0`)
        let s = time.getSeconds().toString().padStart(2, `0`)
        if (format === `YYYY-MM-DD`) {
            return `${y}-${m}-${d}`
        } else {
            return `${y}-${m}-${d} ${h}:${min}:${s}`
        }
    }
 
    /**
    * 输出信息
    * @param {String} msg 信息
    * @return {undefined}
    */
    function log(msg) {
        if(!window.dev){
            return false;
        }
        console.log(`${moment(new Date())}  ${msg}`)
    }
 
    /**
    * 获取当前url的参数,如果要查询特定参数请传参
    * @param {String} 要查询的参数
    * @return {String || Object}
    */
    function getUrlParams(param) {
        // 通过 ? 分割获取后面的参数字符串
        let urlStr = location.href.split(`?`)[1]
        if(!urlStr){
            return ``;
        }
        // 创建空对象存储参数
        let obj = {};
        // 再通过 & 将每一个参数单独分割出来
        let paramsArr = urlStr.split(`&`)
        for(let i = 0,len = paramsArr.length;i < len;i++){
            // 再通过 = 将每一个参数分割为 key:value 的形式
            let arr = paramsArr[i].split(`=`)
            obj[arr[0]] = arr[1];
        }
 
        if(!param){
            return obj;
        }
 
        return obj[param]||``;
    }
 
    /**
    * 生成去除广告的css元素style并附加到HTML节点上
    * @param {String} styles 样式文本
    * @return {undefined}
    */
    function generateRemoveADHTMLElement(styles) {
        //如果已经设置过,退出.
        if (document.getElementById(`RemoveADHTMLElement`)) {
            log(`屏蔽页面广告节点已生成`);
            return false
        }
 
        //设置移除广告样式.
        let style = document.createElement(`style`);//创建style元素.
        style.id = `RemoveADHTMLElement`;
        (document.querySelector(`head`) || document.querySelector(`body`)).appendChild(style);//将节点附加到HTML.
        style.appendChild(document.createTextNode(styles));//附加样式节点到元素节点.
        log(`生成屏蔽页面广告节点成功`)
 
    }
 
    /**
    * 生成去除广告的css文本
    * @param {Array} cssSeletorArr 待设置css选择器数组
    * @return {String}
    */
    function generateRemoveADCssText(cssSeletorArr){
        cssSeletorArr.forEach((seletor,index)=>{
            cssSeletorArr[index]=`${seletor}{display:none!important}`;//遍历并设置样式.
        });
        return cssSeletorArr.join(` `);//拼接成字符串.
    }
 
    /**
    * 触摸事件
    * @return {undefined}
    */
    function nativeTouch(){
        const minNum = 100;
        const maxNum = 999;
        const randomNum = (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum)/1000;
 
        let element =this;
        // 创建 Touch 对象
        let touch = new Touch({
            identifier: Date.now(),
            target: element,
            clientX: 111+randomNum,
            clientY: 222+randomNum,
            radiusX: 333+randomNum,
            radiusY: 444+randomNum,
            rotationAngle: 0,
            force: 1
        });
 
        // 创建 TouchEvent 对象
        let touchStartEvent = new TouchEvent("touchstart", {
            bubbles: true,
            cancelable: true,
            view: window,
            touches: [touch],
            targetTouches: [touch],
            changedTouches: [touch]
        });
 
        // 分派 touchstart 事件到目标元素
        element.dispatchEvent(touchStartEvent);
 
        // 创建 TouchEvent 对象
        let touchEndEvent = new TouchEvent("touchend", {
            bubbles: true,
            cancelable: true,
            view: window,
            touches: [],
            targetTouches: [],
            changedTouches: [touch]
        });
 
        // 分派 touchend 事件到目标元素
        element.dispatchEvent(touchEndEvent);
    }
 
    /**
    * 跳过广告
    * @return {undefined}
    */
    function skipAd(mutationsList, observer) {
        let video = document.querySelector(`.ad-showing video`) || document.querySelector(`video`);//获取视频节点
        let skipButton = document.querySelector(`.ytp-ad-skip-button`);
        let shortAdMsg = document.querySelector(`.video-ads.ytp-ad-module .ytp-ad-player-overlay`);
 
        if(!skipButton && !shortAdMsg){
            log(`######广告不存在######`);
            return false;
        }
 
        //拥有跳过按钮的广告.
        if(skipButton)
        {
            log(`普通视频广告~~~~~~~~~~~~~`);
            log(`总时长:`);
            log(`${video.duration}`)
            log(`当前时间:`);
            log(`${video.currentTime}`)
            // 跳过广告.
            skipButton.click();//PC
            nativeTouch.call(skipButton);//Phone
            log(`按钮跳过了该广告~~~~~~~~~~~~~`);
            return false;//终止
        }
 
        //没有跳过按钮的短广告.
        if(shortAdMsg){
            log(`强制视频广告~~~~~~~~~~~~~`);
            log(`总时长:`);
            log(`${video.duration}`)
            log(`当前时间:`);
            log(`${video.currentTime}`)
            video.currentTime = video.duration;
            log(`强制结束了该广告~~~~~~~~~~~~~`);
            return false;//终止
        }
    }
 
    /**
    * 去除播放中的广告
    * @return {undefined}
    */
    function removePlayerAD(){
 
        //如果已经在运行,退出.
        if (document.getElementById(`removePlayerAD`)) {
            log(`去除播放中的广告功能已在运行`);
            return false
        }
        //设置运行tag.
        let style = document.createElement(`style`);
        style.id = `removePlayerAD`;
        (document.querySelector(`head`) || document.querySelector(`body`)).appendChild(style);//将节点附加到HTML.
 
        let observer;//监听器
        let timerID;//定时器
 
        //开始监听
        function startObserve(){
            //广告节点监听
            const targetNode = document.querySelector(`.video-ads.ytp-ad-module`);
 
            //这个视频不存在广告
            if(!targetNode){
                log(`这个视频不存在广告`);
                return false;
            }
 
            //监听视频中的广告并处理
            const config = {childList: true, subtree: true };// 监听目标节点本身与子树下节点的变动
            observer = new MutationObserver(skipAd);// 创建一个观察器实例并设置处理广告的回调函数
            observer.observe(targetNode, config);// 以上述配置开始观察广告节点
 
            timerID=setInterval(skipAd, 512);//漏网鱼
 
        }
 
        //结束监听
        function closeObserve(){
            observer.disconnect();
            observer = null;
            clearInterval(timerID);
        }
 
        //轮询任务
        setInterval(function(){
            //视频播放页
            if(getUrlParams(`v`)){
                if(observer){
                    return false;
                }
                startObserve();
            }else{
                //其它界面
                if(!observer){
                    return false;
                }
                closeObserve();
            }
        },16);
 
        log(`运行去除播放中的广告功能成功`)
    }
 
    /**
    * main函数
    */
    function main(){
        generateRemoveADHTMLElement(generateRemoveADCssText(cssSeletorArr));//移除界面中的广告.
        removePlayerAD();//移除播放中的广告.
    }
 
    if (document.readyState === `loading`) {
        log(`YouTube去广告脚本即将调用:`);
        document.addEventListener(`DOMContentLoaded`, main);// 此时加载尚未完成
    } else {
        log(`YouTube去广告脚本快速调用:`);
        main();// 此时`DOMContentLoaded` 已经被触发
    }
 
})();

看較舊的 1 則留言

小柯: B2 2023-10-21 07:40

#B1:3511629# 謝謝分享.火狐可正常用.但是Chrome 就不行

沖田總蛙: B3 2023-10-21 10:39

#B1:3511629# 謝謝 可以了

風影雪: B4 2023-10-21 11:52

#B2:3511828# CHROME也可以用喔 前提是要登入 如果沒登入 就沒效果 或你如果原本有裝廣告遮擋軟體 先把YT加入那個廣告遮擋軟體的信任名單中

YEEEEEEEE: B5 2023-10-21 18:37

[upc138697:風影雪]請問怎麼把YT加入那個廣告遮擋軟體的信任名單中

風影雪: B6 2023-10-21 20:09 編輯

#B5:3512047# 你用哪一個 拿UBLOCK舉例就是 設定 之後點選信任清單 把這串加進去www.youtube.com 其他可能叫做白名單之類的 大同小異

(σ′▽‵)′▽‵)σ (cindy810706) 2023-10-20 00:23:08
#14
今天使用後,YT直接跳出"您已離線"
這個有解法嗎
風影雪: B1 2023-10-20 19:20

詳閱15F 看看你是不是操作錯誤

(σ′▽‵)′▽‵)σ: B2 2023-10-21 00:57

#B1:3515454# 後來我把YT的視窗關掉重開就好了,不然之前都是F5而已,感謝

—— (phs100) 2023-10-20 00:41:13
#15
無效的人是不是在貼上之前沒把這個刪掉?



其實不用換擋廣告套件或再裝油猴腳本
清擋廣告套件的快取再更新就可以了
失效了就是谷歌又更新,再清擋廣告套件的快取再更新,不斷重複
(套件作者未必會即使更新)
看你和谷歌誰更耐心和毅力了
沖田總蛙: B1 2023-10-20 10:03

原來新增腳本那有的那串要刪喔

scott: B2 2023-10-20 10:57

對google工程師來講是工作,有錢拿的。你各位想擋的才需要耐心跟毅力

Maple: B3 2023-10-20 18:31

好奇有現成的工具不用,要自己這樣折騰是因為什麼理由嗎

——: B4 2023-10-20 21:25

#B1:3514163# 不刪,它怎麼會知道要在哪個網站運作

持久信念: B5 2023-10-20 21:25

這腳本頁面不是等寬字體看得很痛苦= =

雷 (Y2) 2023-10-20 17:35:10
#16
真的有人會喜歡看這種廣告嗎 這種廣告會幫創作者賺錢? 還是會害很多人受騙?



一天到晚打壓創作者 放這種詐騙廣告來讓使用者掉入google另一個 普厘米斂財陷阱 還一堆人很高興掉進去 這類型的廣告都來自香港 股溝大神連管都不想管 被抵制很正常吧
種田族: B1 2023-10-20 23:37

恩我手機看影片 幾乎都是這種股票廣告 超賭爛的 封鎖完全無效 如果真那樣賺錢 他們還需要主持股票影片或者教你玩股票嗎 根本就是詐騙騙你投資

BigDick: B2 2023-10-24 09:29

會信這些投資詐騙的人,智商恐怕只有87而已~

雷: B3 2023-10-24 19:45

很遺憾的真的很多人都只有87而以

灰孤狼: B4 2023-10-27 15:51

#B2:3509587# 不誇張的說,E世代也許不容易被騙,多關心自己家長一點

黑輪橘: B5 2023-10-28 10:06

很多人受騙 = 廣告商賺大錢(X

奇異筆 (h94929) 2023-10-20 18:08:48
#17
希望GOOGLE能把違反使用條款的累犯

直接封鎖帳號

否則就是對乖乖付費的使用者不公平

看較舊的 8 則留言

桂ヒナギク: B12 2023-10-20 23:50

光簽名檔就是盜圖了 還敢來這說正版

風影雪: B9 2023-10-20 19:49

反正他們就覺得 YT只抽創作者不夠 還窮到跟廣告商拿錢要贊助 然後還是不夠 最後再剝削觀看YT的人 說個笑話YT超窮 快倒閉摟

風影雪: B10 2023-10-20 19:53

樓主記得 看迷片的時候都要看正版的喔 要買片子喔 不然直接建議剁掉喔

持久信念: B11 2023-10-20 21:24 編輯

違反使用條款?以前YT就開大招直接白紙黑字寫著chrome擴展不能下載YT影片,啊怎麼現在不敢用這招禁止擋廣告擴展在YT執行,讓YT程序猿陪用戶玩貓捉老鼠的遊戲?

美白麗鳥無限懶人狀態: B13 2023-10-22 04:07

好了啦下去啦~你自己也是搞盜圖的別再到處裝模作樣假聖人君子了啦~

VASHU (popo60) 2023-10-27 15:00:10
#18
※ 引述《upc138697 (風影雪)》之銘言
不想擋廣告的人 可以不用點進來 沒人強迫你 不用裝著正義魔人的樣子在樓下找人吵架


幹的好,早該有人要來教訓下U吐這家廠商了

最早以前的U兔廣告只有5秒、頂多10秒。所以當時很多廣告商都作時長短,但內容精要簡潔的廣告,
但現在卻變本加厲變成開頭看30秒 + 運氣好再給你追加30秒的廣告!!?也就是說你運氣好就能每次點一支影片都要先看1分鐘廣告! 如今廣告商的內容開始多話、惰語、廢案拖泥帶水的趨勢越來越重!
更別說一堆明顯就是簽賭、詐騙類型的垃圾廣告層出不窮!明顯就是沒有在細心管理才會這麼張狂的!
你看過這個詐騙小玩意嗎? 你知道這垃圾廣告花了多少錢在平台上過審嗎? 這是智商稅詐騙電商平台中最熱銷的廣告....AMAZON騙的最新理財教室~歡迎您進來繳智商稅上一堂課。

而有時,我只是點一個只有2分鐘的遊戲宣傳影片,U吐你也讓我看滿1分鐘廣告?這是什麼意思?

更讓人痛恨的是,我前面看個影片、因為中間有事(如出門、臨時工作)必須關機離開,
回來之後重開機、重新點影片、運氣爆表又看了30秒 + 再追加30秒的廣告,好!開始進入正片了
各位觀眾老爺! 驚喜來了!!! 我馬上將時間軸拉到我上次看的地方之後!!!  鏘啷!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
檊!!!!!!!!!!!!!!!!!!!!!      馬上又是30秒廣告!!!!!!!!!!!!!!!!!!!!!!!!!!  因為G巴U吐判定我已經持續觀看5分鐘了!!
強制我又進入工商廣告時間了!!!!! 我真TMD謝謝你U吐! 你聘請的都是小學畢業的五流工程師嗎?

現在的U吐已經不是以前那種創作者 + 創意空間提供商之間的互利互惠的合作環境以及關係了。
現在的U吐,做的盡是單方面搞垮創作者 & 觀賞者的使用體驗的、基於銅錢臭底下的、劣質的賤商。
限流、亂黃標、垃圾AI審查、還讓中X人擔任審查員來執意下架武漢肺炎的國際影片! 我操NMDU吐!

U吐是不是沒有搞明白一件事?  你的平台之所以會這麼多內容以及吸引大眾來觀看的原因,
完全是因為所有創作者提供你內容! 你才能擁有這麼多多彩而又多元化的內容的,你不是真以為因為
你是U吐所以大家才來看你的吧? 呸!!

要講說是因為有創作者提供你內容U吐你才能被大眾認識也不為過! 現在居然反客為主來了。
活該被擋到死! 這麼G8的系統機制最終若被淘汰掉也沒啥可惜的! 你倒閉了可是一大堆投資客等著蠶食這塊市場。創作者也並非一定要在你這G8平台上投遞內容才行。


REI: B1 2023-10-27 15:03 編輯

難怪短影片會取代傳統影片,因為觀眾看完廣告還要看正片開頭的一堆廢話

灰孤狼: B2 2023-10-27 15:58

然後等等又有跳針仔過來噴,架伺服器不用成本嗎?之類的屁話

根本星奈控: B3 2023-10-27 18:03 編輯

就養套殺,反正獨大以後,短時間能出現替代很難,有人受不了付費能宰一個是一個,就跟蝦皮 外送平台一樣,手續費年年創新高,結果大家還是含淚用

風影雪 (upc138697) 2023-11-12 17:59:56
#19
舊文防止失效樓層
第一步 安裝此擴充 https://www.tampermonkey.net/index.php?ext=iikm&updated=true&version=4.19.0
第二步
複製已下程式碼
// ==UserScript==
// @name         YouTube去广告 YouTube AD Blocker
// @name:zh-CN   YouTube去广告
// @name:zh-TW   YouTube去廣告
// @name:zh-HK   YouTube去廣告
// @name:zh-MO   YouTube去廣告
// @namespace    http://tampermonkey.net/
// @version      5.95
// @description         这是一个去除YouTube广告的脚本,轻量且高效,它能丝滑的去除界面广告和视频广告,包括6s广告。This is a script that removes ads on YouTube, it's lightweight and efficient, capable of smoothly removing interface and video ads, including 6s ads.
// @description:zh-CN   这是一个去除YouTube广告的脚本,轻量且高效,它能丝滑的去除界面广告和视频广告,包括6s广告。
// @description:zh-TW   這是一個去除YouTube廣告的腳本,輕量且高效,它能絲滑地去除界面廣告和視頻廣告,包括6s廣告。
// @description:zh-HK   這是一個去除YouTube廣告的腳本,輕量且高效,它能絲滑地去除界面廣告和視頻廣告,包括6s廣告。
// @description:zh-MO   這是一個去除YouTube廣告的腳本,輕量且高效,它能絲滑地去除界面廣告和視頻廣告,包括6s廣告。
// @author       iamfugui
// @match        *://*.youtube.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=YouTube.com
// @grant        none
// @license MIT
// ==/UserScript==
(function() {
    `use strict`;
 
    //界面广告选择器
    const cssSeletorArr = [
        `#masthead-ad`,//首页顶部横幅广告.
        `ytd-rich-item-renderer.style-scope.ytd-rich-grid-row #content:has(.ytd-display-ad-renderer)`,//首页视频排版广告.
        `.video-ads.ytp-ad-module`,//播放器底部广告.
        `tp-yt-paper-dialog:has(yt-mealbar-promo-renderer)`,//播放页会员促销广告.
        `ytd-engagement-panel-section-list-renderer[target-id="engagement-panel-ads"]`,//播放页右上方推荐广告.
        `#related #player-ads`,//播放页评论区右侧推广广告.
        `#related ytd-ad-slot-renderer`,//播放页评论区右侧视频排版广告.
        `ytd-ad-slot-renderer`,//搜索页广告.
        `yt-mealbar-promo-renderer`,//播放页会员推荐广告.
        `ad-slot-renderer`,//M播放页第三方推荐广告
        `ytm-companion-ad-renderer`,//M可跳过的视频广告链接处
    ];
 
    window.dev=true;//开发使用
 
    /**
    * 将标准时间格式化
    * @param {Date} time 标准时间
    * @param {String} format 格式
    * @return {String}
    */
    function moment(time, format = `YYYY-MM-DD HH:mm:ss`) {
        // 获取年⽉⽇时分秒
        let y = time.getFullYear()
        let m = (time.getMonth() + 1).toString().padStart(2, `0`)
        let d = time.getDate().toString().padStart(2, `0`)
        let h = time.getHours().toString().padStart(2, `0`)
        let min = time.getMinutes().toString().padStart(2, `0`)
        let s = time.getSeconds().toString().padStart(2, `0`)
        if (format === `YYYY-MM-DD`) {
            return `${y}-${m}-${d}`
        } else {
            return `${y}-${m}-${d} ${h}:${min}:${s}`
        }
    }
 
    /**
    * 输出信息
    * @param {String} msg 信息
    * @return {undefined}
    */
    function log(msg) {
        if(!window.dev){
            return false;
        }
        console.log(`${moment(new Date())}  ${msg}`)
    }
 
    /**
    * 获取当前url的参数,如果要查询特定参数请传参
    * @param {String} 要查询的参数
    * @return {String || Object}
    */
    function getUrlParams(param) {
        // 通过 ? 分割获取后面的参数字符串
        let urlStr = location.href.split(`?`)[1]
        if(!urlStr){
            return ``;
        }
        // 创建空对象存储参数
        let obj = {};
        // 再通过 & 将每一个参数单独分割出来
        let paramsArr = urlStr.split(`&`)
        for(let i = 0,len = paramsArr.length;i < len;i++){
            // 再通过 = 将每一个参数分割为 key:value 的形式
            let arr = paramsArr[i].split(`=`)
            obj[arr[0]] = arr[1];
        }
 
        if(!param){
            return obj;
        }
 
        return obj[param]||``;
    }
 
    /**
    * 生成去除广告的css元素style并附加到HTML节点上
    * @param {String} styles 样式文本
    * @return {undefined}
    */
    function generateRemoveADHTMLElement(styles) {
        //如果已经设置过,退出.
        if (document.getElementById(`RemoveADHTMLElement`)) {
            log(`屏蔽页面广告节点已生成`);
            return false
        }
 
        //设置移除广告样式.
        let style = document.createElement(`style`);//创建style元素.
        style.id = `RemoveADHTMLElement`;
        (document.querySelector(`head`) || document.querySelector(`body`)).appendChild(style);//将节点附加到HTML.
        style.appendChild(document.createTextNode(styles));//附加样式节点到元素节点.
        log(`生成屏蔽页面广告节点成功`)
 
    }
 
    /**
    * 生成去除广告的css文本
    * @param {Array} cssSeletorArr 待设置css选择器数组
    * @return {String}
    */
    function generateRemoveADCssText(cssSeletorArr){
        cssSeletorArr.forEach((seletor,index)=>{
            cssSeletorArr[index]=`${seletor}{display:none!important}`;//遍历并设置样式.
        });
        return cssSeletorArr.join(` `);//拼接成字符串.
    }
 
    /**
    * 触摸事件
    * @return {undefined}
    */
    function nativeTouch(){
        const minNum = 100;
        const maxNum = 999;
        const randomNum = (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum)/1000;
 
        let element =this;
        // 创建 Touch 对象
        let touch = new Touch({
            identifier: Date.now(),
            target: element,
            clientX: 111+randomNum,
            clientY: 222+randomNum,
            radiusX: 333+randomNum,
            radiusY: 444+randomNum,
            rotationAngle: 0,
            force: 1
        });
 
        // 创建 TouchEvent 对象
        let touchStartEvent = new TouchEvent("touchstart", {
            bubbles: true,
            cancelable: true,
            view: window,
            touches: [touch],
            targetTouches: [touch],
            changedTouches: [touch]
        });
 
        // 分派 touchstart 事件到目标元素
        element.dispatchEvent(touchStartEvent);
 
        // 创建 TouchEvent 对象
        let touchEndEvent = new TouchEvent("touchend", {
            bubbles: true,
            cancelable: true,
            view: window,
            touches: [],
            targetTouches: [],
            changedTouches: [touch]
        });
 
        // 分派 touchend 事件到目标元素
        element.dispatchEvent(touchEndEvent);
    }
 
    /**
    * 跳过广告
    * @return {undefined}
    */
    function skipAd(mutationsList, observer) {
        let video = document.querySelector(`.ad-showing video`) || document.querySelector(`video`);//获取视频节点
        let skipButton = document.querySelector(`.ytp-ad-skip-button`);
        let shortAdMsg = document.querySelector(`.video-ads.ytp-ad-module .ytp-ad-player-overlay`);
 
        if(!skipButton && !shortAdMsg){
            log(`######广告不存在######`);
            return false;
        }
 
        //拥有跳过按钮的广告.
        if(skipButton)
        {
            log(`普通视频广告~~~~~~~~~~~~~`);
            log(`总时长:`);
            log(`${video.duration}`)
            log(`当前时间:`);
            log(`${video.currentTime}`)
            // 跳过广告.
            skipButton.click();//PC
            nativeTouch.call(skipButton);//Phone
            log(`按钮跳过了该广告~~~~~~~~~~~~~`);
            return false;//终止
        }
 
        //没有跳过按钮的短广告.
        if(shortAdMsg){
            log(`强制视频广告~~~~~~~~~~~~~`);
            log(`总时长:`);
            log(`${video.duration}`)
            log(`当前时间:`);
            log(`${video.currentTime}`)
            video.currentTime = video.duration;
            log(`强制结束了该广告~~~~~~~~~~~~~`);
            return false;//终止
        }
    }
 
    /**
    * 去除播放中的广告
    * @return {undefined}
    */
    function removePlayerAD(){
 
        //如果已经在运行,退出.
        if (document.getElementById(`removePlayerAD`)) {
            log(`去除播放中的广告功能已在运行`);
            return false
        }
        //设置运行tag.
        let style = document.createElement(`style`);
        style.id = `removePlayerAD`;
        (document.querySelector(`head`) || document.querySelector(`body`)).appendChild(style);//将节点附加到HTML.
 
        let observer;//监听器
        let timerID;//定时器
 
        //开始监听
        function startObserve(){
            //广告节点监听
            const targetNode = document.querySelector(`.video-ads.ytp-ad-module`);
 
            //这个视频不存在广告
            if(!targetNode){
                log(`这个视频不存在广告`);
                return false;
            }
 
            //监听视频中的广告并处理
            const config = {childList: true, subtree: true };// 监听目标节点本身与子树下节点的变动
            observer = new MutationObserver(skipAd);// 创建一个观察器实例并设置处理广告的回调函数
            observer.observe(targetNode, config);// 以上述配置开始观察广告节点
 
            timerID=setInterval(skipAd, 512);//漏网鱼
 
        }
 
        //结束监听
        function closeObserve(){
            observer.disconnect();
            observer = null;
            clearInterval(timerID);
        }
 
        //轮询任务
        setInterval(function(){
            //视频播放页
            if(getUrlParams(`v`)){
                if(observer){
                    return false;
                }
                startObserve();
            }else{
                //其它界面
                if(!observer){
                    return false;
                }
                closeObserve();
            }
        },16);
 
        log(`运行去除播放中的广告功能成功`)
    }
 
    /**
    * main函数
    */
    function main(){
        generateRemoveADHTMLElement(generateRemoveADCssText(cssSeletorArr));//移除界面中的广告.
        removePlayerAD();//移除播放中的广告.
    }
 
    if (document.readyState === `loading`) {
        log(`YouTube去广告脚本即将调用:`);
        document.addEventListener(`DOMContentLoaded`, main);// 此时加载尚未完成
    } else {
        log(`YouTube去广告脚本快速调用:`);
        main();// 此时`DOMContentLoaded` 已经被触发
    }
 
})();

第三步打開TAMPERMONKEY 新增腳本 貼上 儲存 搞定復活 實測有效
另外補充 原本使用的廣告遮擋軟體 記得把 www.youtube.com 這串加入信任清單 這樣就不用移除在其他地方也能使用

剛剛有個天兵跟我說 他不能用 結果他都不登入 也開無痕 不登入直接用UBLOCK就好了 暈倒
豆奶小王子: B1 2023-11-14 12:39

感恩

零: B2 01-10 10:01

實用

魔A魔A (lansner) 2023-11-12 20:34:29
#20
試試更簡單的方法,把yt帳號登出直接看,
adblock軟體也不用關,啥程式也不用裝,
看到又被yt警告倒數要封鎖就去清除瀏覽資料,
缺點就各種訂閱gg
你還有什麼問題: B1 2023-11-12 20:40

這方法沒有更方便...

孤獨是唯一的永恆: B2 2023-11-12 23:34

先從卸載CHROME開始 YT的母公司GOOGLE如果發現YT這樣硬幹導致自家遊覽器使用率大跌 就會開始檢討評估是否為了那一點廣告收益而讓自家遊覽器被抵制 丟西瓜撿芝麻

Thomas: B3 2023-11-17 16:15

已經跌不少了啦,連台灣記者都在報Edge的擋廣告附加元件下載率突然變超高

延伸閱讀

問題TUF x570 有新bios更新了 有勇者更上看看嗎

2020-12-14 16:38:21

心得不只是放大!Fractal Design North XL 機殼

2024-05-15 19:10:19

攻略受夠Windows更新了?Linux 系統超簡略安裝指南!

2022-12-05 07:15:50

問題請問win 10 21H2 可以更新了嗎?

2021-12-05 21:37:08

情報Windows 10 1803可以更新了...

2018-08-13 18:00:05

心得微星主機板非常之難更新BIOS

2024-05-15 14:27:14

心得雙配色無線三模熱插拔機械式鍵盤

2024-05-15 15:58:25

心得專業創作者的高速大容量儲存利器!

2024-05-15 10:13:03

電梯
開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】