! ============================================== ! YouTube Ad Blocking Filters - Combined ! Sources: uBO filters.txt, quick-fixes.txt, EasyList, uBO annoyances-others.txt ! Last extracted: 2026-02-12 ! ============================================== ! ----------------------------------------------- ! uBlock Filters (filters.txt) - Core Video Ad Blocking ! ----------------------------------------------- ! https://github.com/uBlockOrigin/uAssets/issues/1408 *_ad_$media,domain=youtube.com,3p ! https://github.com/easylist/easylist/issues/5112 ! @@||youtube.com/get_video_info?*timedtext_editor$xhr,1p ! https://redd.it/ggcmkp https://redd.it/gx03e0 ! https://github.com/uBlockOrigin/uAssets/pull/18106/ ! https://www.reddit.com/r/uBlockOrigin/comments/1atwzem/comment/l06ayn9/ tv.youtube.com##+js(trusted-replace-xhr-response, '"adPlacements"', '"no_ads"', /playlist\?list=|\/player(?:\?.+)?$|watch\?[tv]=/) !#if !cap_html_filtering www.youtube.com##+js(trusted-replace-xhr-response, /"adPlacements.*?([A-Z]"\}|"\}{2\,4})\}\]\,/, , /playlist\?list=|\/player(?:\?.+)?$|watch\?[tv]=/) www.youtube.com##+js(trusted-replace-xhr-response, /"adPlacements.*?("adSlots"|"adBreakHeartbeatParams")/gms, $1, /\/player(?:\?.+)?$/) www.youtube.com##+js(trusted-replace-fetch-response, '"adPlacements"', '"no_ads"', player?) www.youtube.com##+js(trusted-replace-fetch-response, '"adSlots"', '"no_ads"', player?) !#else ||www.youtube.com/playlist?list=$xhr,1p,replace=/"adPlacements"/"no_ads"/ ||www.youtube.com/playlist?list=$xhr,1p,replace=/"adSlots"/"no_ads"/ ||www.youtube.com/watch?$xhr,1p,replace=/"adPlacements"/"no_ads"/ ||www.youtube.com/watch?$xhr,1p,replace=/"adSlots"/"no_ads"/ ||www.youtube.com/youtubei/v1/player?$xhr,1p,replace=/"adPlacements"/"no_ads"/ ||www.youtube.com/youtubei/v1/player?$xhr,1p,replace=/"adSlots"/"no_ads"/ !#endif ! https://www.reddit.com/r/uBlockOrigin/comments/154vtwy/getting_ads_on_youtube/jsu299l/ ! https://github.com/uBlockOrigin/uBlock-issues/issues/3083#issuecomment-1899349892 ! https://github.com/uBlockOrigin/uBlock-discussions/discussions/831#discussioncomment-8271839 m.youtube.com,music.youtube.com,tv.youtube.com,www.youtube.com,youtubekids.com,youtube-nocookie.com##+js(set, ytInitialPlayerResponse.playerAds, undefined) m.youtube.com,music.youtube.com,tv.youtube.com,www.youtube.com,youtubekids.com,youtube-nocookie.com##+js(set, ytInitialPlayerResponse.adPlacements, undefined) m.youtube.com,music.youtube.com,tv.youtube.com,www.youtube.com,youtubekids.com,youtube-nocookie.com##+js(set, ytInitialPlayerResponse.adSlots, undefined) m.youtube.com,music.youtube.com,tv.youtube.com,www.youtube.com,youtubekids.com,youtube-nocookie.com##+js(set, playerResponse.adPlacements, undefined) ! https://github.com/uBlockOrigin/uAssets/issues/7636#issuecomment-1674303331 m.youtube.com,music.youtube.com,youtubekids.com,youtube-nocookie.com##+js(json-prune, playerResponse.adPlacements playerResponse.playerAds playerResponse.adSlots adPlacements playerAds adSlots important) ! https://github.com/uBlockOrigin/uAssets/issues/15632 youtube.com##.ytlr-horizontal-list-renderer__items > .yt-virtual-list__container > .yt-virtual-list__item--visible.yt-virtual-list__item--selected.yt-virtual-list__item:has-text(Ad) ! https://www.reddit.com/r/uBlockOrigin/comments/163cy47/youtube_antiadblock_and_ads_weekly_thread_august/jyemgzo/ ||googlevideo.com/initplayback?source=youtube&*c=TVHTML5&*oad=$xhr,domain=youtube.com ! Shorts Ad m.youtube.com,music.youtube.com,tv.youtube.com,www.youtube.com,youtubekids.com,youtube-nocookie.com##+js(json-prune-fetch-response, reelWatchSequenceResponse.entries.[-].command.reelWatchEndpoint.adClientParams.isAd entries.[-].command.reelWatchEndpoint.adClientParams.isAd, , propsToMatch, url:/reel_watch_sequence?) m.youtube.com,music.youtube.com,tv.youtube.com,www.youtube.com,youtubekids.com,youtube-nocookie.com##+js(json-prune, entries.[-].command.reelWatchEndpoint.adClientParams.isAd) ! ||youtube.com/youtubei/v1/get_watch?$xhr,1p,replace=/"adPlacements"/"no_ads"/ ||youtube.com/youtubei/v1/get_watch?$xhr,1p,replace=/"adSlots"/"no_ads"/ ! uBO filters.txt - Cosmetic youtube.com##.masthead-ad-control,.ad-div,.pyv-afc-ads-container youtube.com###promotion-shelf youtube.com##ytd-video-masthead-ad-advertiser-info-renderer,ytm-promoted-sparkles-web-renderer youtube.com##.ytp-ad-progress youtube.com###masthead-ad ! ----------------------------------------------- ! uBlock Filters - Quick Fixes (quick-fixes.txt) ! ----------------------------------------------- ! https://www.reddit.com/r/uBlockOrigin/comments/16lmeri/youtube_antiadblock_and_ads_september_18_2023/k1wl8df/ youtube.com##+js(json-prune, playerResponse.adPlacements playerResponse.playerAds playerResponse.adSlots adPlacements playerAds adSlots legacyImportant) www.youtube.com##+js(trusted-rpnt, script, (function serverContract(), (()=>{if("YOUTUBE_PREMIUM_LOGO"===ytInitialData?.topbar?.desktopTopbarRenderer?.logo?.topbarLogoRenderer?.iconImage?.iconType||location.href.startsWith("https://www.youtube.com/tv#/")||location.href.startsWith("https://www.youtube.com/embed/"))return;document.addEventListener("DOMContentLoaded"\,(function(){const t=()=>{const t=document.getElementById("movie_player");if(!t)return;if(!t.getStatsForNerds?.()?.debug_info?.startsWith?.("SSAP\, AD"))return;const e=t.getProgressState?.();e&&e.duration>0&&(e.loaded1)&&t.seekTo?.(e.duration)};t()\,new MutationObserver((()=>{t()})).observe(document\,{childList:!0\,subtree:!0})}));const t={apply:(t\,e\,o)=>{const n=o[0];return"function"==typeof n&&n.toString().includes("onAbnormalityDetected")&&(o[0]=function(){})\,Reflect.apply(t\,e\,o)}};window.Promise.prototype.then=new Proxy(window.Promise.prototype.then\,t)})();(function serverContract(), sedCount, 1) www.youtube.com##+js(trusted-edit-inbound-object, JSON.stringify, 0, ..client[?.clientName=="WEB"]+={"clientScreen":"CHANNEL"}) www.youtube.com##+js(trusted-json-edit-fetch-request, ..client[?.clientName=="WEB"]+={"clientScreen":"CHANNEL"}, propsToMatch, /\/(player|get_watch)/) ! www.youtube.com##ytd-watch-flexy[player-unavailable]:remove-attr(player-unavailable) ! www.youtube.com##+js(trusted-json-edit-fetch-request, ..playbackContext[?.contentPlaybackContext]+={"adPlaybackContext":{"pyv":true}}, propsToMatch, /\/(player|get_watch)/) ! www.youtube.com##+js(trusted-replace-outbound-text, JSON.stringify, {"contentPlaybackContext", {"adPlaybackContext":{"pyv":true}\,"contentPlaybackContext", condition, currentUrl":"/watch) www.youtube.com##+js(nano-stb, [native code], 17000, 0.001) !||www.youtube.com/s/_/ytmainappweb/_/js/$script,xhr,replace=/onAbnormalityDetected"\,function\(\)[\S\s]+?playabilityStatus\)\}/onAbnormalityDetected"\,function(){}/ !www.youtube.com##+js(json-prune-fetch-response, playerAds adPlacements adSlots no_ads playerResponse.playerAds playerResponse.adPlacements playerResponse.adSlots playerResponse.no_ads [].playerResponse.adPlacements [].playerResponse.playerAds [].playerResponse.adSlots [].playerResponse.no_ads, , propsToMatch, /player\?|get_watch|^\W+$/) www.youtube.com##+js(json-prune-fetch-response, adPlacements adSlots playerResponse.adPlacements playerResponse.adSlots [].playerResponse.adPlacements [].playerResponse.adSlots, , propsToMatch, /player?) www.youtube.com##+js(json-prune-fetch-response, adPlacements adSlots playerResponse.adPlacements playerResponse.adSlots, , propsToMatch, /playlist?) www.youtube.com##+js(json-prune-xhr-response, adPlacements adSlots playerResponse.adPlacements playerResponse.adSlots [].playerResponse.adPlacements [].playerResponse.adSlots, , propsToMatch, /\/player(?:\?.+)?$/) tv.youtube.com##+js(trusted-replace-xhr-response, '"adPlacements"', '"no_ads"', /playlist\?list=|\/player(?:\?.+)?$|watch\?[tv]=/) www.youtube.com##+js(trusted-replace-xhr-response, /"adPlacements.*?([A-Z]"\}|"\}{2\,4})\}\]\,/, , /playlist\?list=|\/player(?:\?.+)?$|watch\?[tv]=/) www.youtube.com##+js(trusted-replace-xhr-response, /"adPlacements.*?("adSlots"|"adBreakHeartbeatParams")/gms, $1, /\/player(?:\?.+)?$/) www.youtube.com##+js(trusted-replace-fetch-response, '"adPlacements"', '"no_ads"', player?) www.youtube.com##+js(trusted-replace-fetch-response, '"adSlots"', '"no_ads"', player?) www.youtube.com##+js(trusted-replace-fetch-response, '"adSlots"', '"no_ads"', /^\W+$/) www.youtube.com##+js(rmnt, script, window\,"fetch") ||www.youtube.com/playlist?list=$xhr,1p,replace=/"adPlacements"/"no_ads"/ ||www.youtube.com/playlist?list=$xhr,1p,replace=/"adSlots"/"no_ads"/ ||www.youtube.com/watch?$xhr,1p,replace=/"adPlacements"/"no_ads"/ ||www.youtube.com/watch?$xhr,1p,replace=/"adSlots"/"no_ads"/ ||www.youtube.com/youtubei/v1/player?$xhr,1p,replace=/"adPlacements"/"no_ads"/ ||www.youtube.com/youtubei/v1/player?$xhr,1p,replace=/"adSlots"/"no_ads"/ ||youtube.com/youtubei/v1/get_watch?$xhr,1p,replace=/"adPlacements"/"no_ads"/ ||youtube.com/youtubei/v1/get_watch?$xhr,1p,replace=/"adSlots"/"no_ads"/ www.youtube.com##^script[id]:has-text(window,"fetch") www.youtube.com##+js(trusted-prevent-dom-bypass, Node.prototype.appendChild, fetch) www.youtube.com##+js(trusted-prevent-dom-bypass, Node.prototype.appendChild, Request) www.youtube.com##+js(trusted-prevent-dom-bypass, Node.prototype.appendChild, JSON.parse) youtube.com##+js(json-prune, entries.[-].command.reelWatchEndpoint.adClientParams.isAd) youtube.com#@##player-ads !www.youtube.com##+js(trusted-replace-outbound-text, JSON.stringify, contentPlaybackContext":{, contentPlaybackContext":{"isInlinePlaybackNoAd":true\,, condition, contentPlaybackContext) ! www.youtube.com##+js(trusted-replace-outbound-text, JSON.stringify, "clientScreen":"WATCH", "clientScreen":"ADUNIT", condition, contentPlaybackContext) www.youtube.com##+js(trusted-replace-fetch-response, '"adSlots"', '"no_ads"', /get_watch?) ! www.youtube.com##+js(trusted-json-edit-fetch-request, .context.client+={"clientScreen":"ADUNIT"}, /get_watch?) ! www.youtube.com##+js(trusted-replace-outbound-text, JSON.stringify, "params":", "params":"yAEB, condition, /("contentPlaybackContext":{".*\,"params":"|"params":".*"contentPlaybackContext":{")/) ! www.youtube.com##+js(trusted-replace-outbound-text, JSON.stringify, "contentCheckOk":false, "params":"yAEB"\,"contentCheckOk":false, condition, /^(?=.*"contentPlaybackContext":{")(?!.*"params":").*$/) /\.googlevideo\.com\/videoplayback\?expire=(?:[02-9]+|1[1-68-9]\d+|17[1-48-9]\d+)&/$xhr,3p,method=get,domain=www.youtube.com ||youtube.com/api/stats/atr?ns=*&ver=2&cmt=1.*&fs=0&*&euri&lact=$xhr,method=post,badfilter ! ----------------------------------------------- ! EasyList - Network Blocks ! ----------------------------------------------- ||youtube.com/pagead/ ||youtube.com/youtubei/v1/player/ad_break ||m.youtube.com/get_midroll_$domain=youtube.com ||www.youtube.com/get_midroll_$domain=youtube.com ||youtube.com/get_video_info?*adunit$~third-party ||googlesyndication.com^$domain=blogto.com|youtube.com ! EasyList - Cosmetic / Element Hiding youtube.com###description-inner > ytd-merch-shelf-renderer > #main.ytd-merch-shelf-renderer youtube.com###shopping-timely-shelf youtube.com###shorts-inner-container > .ytd-shorts:has(> .ytd-reel-video-renderer > ytd-ad-slot-renderer) youtube.com##.ytReelMetapanelViewModelHost > .ytReelMetapanelViewModelMetapanelItem > .ytShortsSuggestedActionViewModelStaticHost youtube.com##.ytd-section-list-renderer > .ytd-item-section-renderer > ytd-search-pyv-renderer.ytd-item-section-renderer youtube.com##.ytd-two-column-browse-results-renderer > ytd-rich-grid-renderer > #masthead-ad.ytd-rich-grid-renderer youtube.com##.ytd-watch-flexy > .ytd-watch-next-secondary-results-renderer > ytd-ad-slot-renderer.ytd-watch-next-secondary-results-renderer youtube.com##.ytd-watch-flexy > ytd-merch-shelf-renderer > #main.ytd-merch-shelf-renderer youtube.com##.ytp-suggested-action > .ytp-suggested-action-badge m.youtube.com##lazy-list > ad-slot-renderer youtube.com##ytd-rich-item-renderer:has(> #content > ytd-ad-slot-renderer) m.youtube.com##ytm-companion-slot[data-content-type] > ytm-companion-ad-renderer m.youtube.com##ytm-rich-item-renderer > ad-slot-renderer youtube.com##.grid.ytd-browse > #primary > .style-scope > .ytd-rich-grid-renderer > .ytd-rich-grid-renderer > .ytd-ad-slot-renderer youtube.com##.ytd-rich-item-renderer.style-scope > .ytd-rich-item-renderer > .ytd-ad-slot-renderer.style-scope youtube.com##ytd-item-section-renderer > .ytd-item-section-renderer > ytd-ad-slot-renderer.style-scope ! EasyList - Exceptions (prevent breakage) ads.google.com,youtube.com#@#.video-ads @@||youtube.com/get_video_info?$xmlhttprequest,domain=music.youtube.com|tv.youtube.com @@||music.youtube.com^$generichide @@||tv.youtube.com^$generichide @@||www.youtube.com^$generichide ! ----------------------------------------------- ! uBlock Annoyances-Others - Premium Upsell/Overlay Blocking ! ----------------------------------------------- m.youtube.com,music.youtube.com,tv.youtube.com,www.youtube.com,youtubekids.com##ytd-popup-container > .ytd-popup-container > #contentWrapper > .ytd-popup-container[position-type="OPEN_POPUP_POSITION_BOTTOMLEFT"] m.youtube.com###mealbar\:3 > ytm-mealbar.mealbar-promo-renderer m.youtube.com,music.youtube.com,tv.youtube.com,www.youtube.com,youtubekids.com##+js(set, ytInitialPlayerResponse.auxiliaryUi.messageRenderers.upsellDialogRenderer, undefined) m.youtube.com,music.youtube.com,tv.youtube.com,www.youtube.com,youtubekids.com##+js(json-prune, auxiliaryUi.messageRenderers.upsellDialogRenderer) m.youtube.com##+js(aeld, visibilitychange, /bgmobile|\{\w\.\w+\(\)\}|\.getVisibilityState\(\)/) m.youtube.com##+js(trusted-set, document.visibilityState, json:"visible") music.youtube.com##ytmusic-description-shelf-renderer[is-track-lyrics-page]:style(user-select: initial !important)