Skip to content

Instantly share code, notes, and snippets.

@padgriffin
Forked from tadwohlrapp/ublock-filter-youtube.txt
Last active March 20, 2026 13:18
Show Gist options
  • Select an option

  • Save padgriffin/841228af2b56cb775a982f9fba37d185 to your computer and use it in GitHub Desktop.

Select an option

Save padgriffin/841228af2b56cb775a982f9fba37d185 to your computer and use it in GitHub Desktop.
My modified (less restrictive) uBlock filters for YouTube
! ============================
! YouTube Top Nav Bar
! ============================
! always show normal YouTube logo, never that distracting doodleyoodle
www.youtube.com##ytd-topbar-logo-renderer > a > ytd-yoodle-renderer
www.youtube.com##ytd-topbar-logo-renderer > a > div:remove-attr(hidden)
! hide "Search with your voice" button (YouTube users have no voice)
www.youtube.com###masthead #center #voice-search-button
! hide "+Create" button
www.youtube.com###masthead #end #buttons > ytd-button-renderer
! rather experimental: fix weird height issue with top navigation bar after page-navigation + remove annoying frosted glass background effect
www.youtube.com#$##frosted-glass.with-chipbar.ytd-app {background: var(--yt-spec-base-background)!important;height: var(--ytd-toolbar-height)!important;}
www.youtube.com#$#ytd-feed-filter-chip-bar-renderer[frosted-glass-mode=with-chipbar] #chips-wrapper.ytd-feed-filter-chip-bar-renderer, ytd-masthead[frosted-glass-mode=without-chipbar] #background.ytd-masthead {background: var(--yt-spec-base-background)!important;}
! ============================
! YouTube Left Main Menu
! ============================
! hide "Shorts" menu item
www.youtube.com##ytd-guide-renderer ytd-guide-entry-renderer:has(a[title="Shorts"]), ytd-mini-guide-entry-renderer[aria-label="Shorts"]
! hide "Explore" menu section
www.youtube.com##ytd-guide-section-renderer:has(#guide-section-title:has-text(/Explore/))
! hide "More from YouTube" menu section
www.youtube.com##ytd-guide-section-renderer:has(#guide-section-title:has-text(/More from YouTube/))
! ============================
! YouTube Home Page
! ============================
! hide disruptive sections like "Shorts" or "Top News" on Home Page
www.youtube.com##[page-subtype="home"] ytd-rich-section-renderer:has(#dismissible)
! hide "How is this recommendation?" tooltip below videos on Home Page
www.youtube.com##[page-subtype="home"] ytd-rich-item-renderer #attached-survey
! hide super short videos (shorter than 1 minute) on Home Page
# www.youtube.com##[page-subtype="home"] ytd-rich-item-renderer:has(ytd-thumbnail-overlay-time-status-renderer:has-text(/^0:/))
! hide super long videos (1 hour and longer) on Home Page
# www.youtube.com##[page-subtype="home"] ytd-rich-item-renderer:has(ytd-thumbnail-overlay-time-status-renderer:has-text(/^\d+:\d\d:/))
! hide "Members only" videos on Home Page
www.youtube.com##[page-subtype="home"] ytd-rich-item-renderer:has(.badge-style-type-members-only)
! hide "Premium" videos on Home Page
www.youtube.com##[page-subtype="home"] ytd-rich-item-renderer:has(.badge[aria-label="Premium"])
! hide "Pay to watch" videos on Home Page
www.youtube.com##[page-subtype="home"] ytd-rich-item-renderer:has(.badge[aria-label="Pay to watch"])
! hide big yoodle banner on Home Page
www.youtube.com##[page-subtype="home"] #big-yoodle
! hide "how did you like this video" survey crap on Home Page
www.youtube.com##[page-subtype="home"] ytd-rich-section-renderer:has(ytd-inline-survey-renderer)
! set responsive grid layout on Home Page and fix item margins
www.youtube.com##[page-subtype="home"] ytd-rich-grid-renderer.ytd-two-column-browse-results-renderer:matches-media((max-width: 1500px)):style(--ytd-rich-grid-items-per-row: 3 !important;)
www.youtube.com##[page-subtype="home"] ytd-rich-grid-renderer.ytd-two-column-browse-results-renderer:matches-media((min-width: 1500px) and (max-width: 2000px)):style(--ytd-rich-grid-items-per-row: 4 !important;)
www.youtube.com##[page-subtype="home"] ytd-rich-grid-renderer.ytd-two-column-browse-results-renderer:matches-media((min-width: 2000px) and (max-width: 2500px)):style(--ytd-rich-grid-items-per-row: 5 !important;)
www.youtube.com##[page-subtype="home"] ytd-rich-grid-renderer.ytd-two-column-browse-results-renderer:matches-media((min-width: 2500px)):style(--ytd-rich-grid-items-per-row: 6 !important;)
www.youtube.com##[page-subtype="home"] ytd-rich-grid-renderer > #contents > ytd-rich-item-renderer[rendered-from-rich-grid]:remove-attr(is-in-first-column)
! ============================
! YouTube Subscriptions Page
! ============================
! hide disruptive sections like "Shorts" on Subscriptions Page
www.youtube.com##[page-subtype="subscriptions"] ytd-rich-section-renderer:has(#dismissible)
! hide upcoming videos on Subscriptions Page
www.youtube.com##[page-subtype="subscriptions"] ytd-rich-item-renderer:has(ytd-thumbnail-overlay-time-status-renderer[overlay-style="UPCOMING"])
! hide "Members only" videos on Subscriptions Page
www.youtube.com##[page-subtype="subscriptions"] ytd-rich-item-renderer:has(.badge-style-type-members-only)
! hide "Premium" videos on Subscriptions Page
www.youtube.com##[page-subtype="subscriptions"] ytd-rich-item-renderer:has(.badge[aria-label="Premium"])
! set responsive grid layout on Subscriptions Page and fix item margins
www.youtube.com##[page-subtype="subscriptions"] ytd-rich-grid-renderer.ytd-two-column-browse-results-renderer:matches-media((max-width: 1500px)):style(--ytd-rich-grid-items-per-row: 3 !important;)
www.youtube.com##[page-subtype="subscriptions"] ytd-rich-grid-renderer.ytd-two-column-browse-results-renderer:matches-media((min-width: 1500px) and (max-width: 2000px)):style(--ytd-rich-grid-items-per-row: 4 !important;)
www.youtube.com##[page-subtype="subscriptions"] ytd-rich-grid-renderer.ytd-two-column-browse-results-renderer:matches-media((min-width: 2000px) and (max-width: 2500px)):style(--ytd-rich-grid-items-per-row: 5 !important;)
www.youtube.com##[page-subtype="subscriptions"] ytd-rich-grid-renderer.ytd-two-column-browse-results-renderer:matches-media((min-width: 2500px)):style(--ytd-rich-grid-items-per-row: 6 !important;)
www.youtube.com##[page-subtype="subscriptions"] ytd-rich-grid-renderer > #contents > ytd-rich-item-renderer[rendered-from-rich-grid]:remove-attr(is-in-first-column)
! ============================
! YouTube Search Results
! ============================
! hide fluff ("People also watched", "For you", "Previously watched" etc.) in Search Results
www.youtube.com##ytd-search ytd-shelf-renderer[thumbnail-style]
www.youtube.com##ytd-search #contents > ytd-horizontal-card-list-renderer
! hide movies you can rent or "buy" in Search Results
www.youtube.com##ytd-search ytd-movie-renderer
! hide right sidebar with ads for streaming services in Search Results
www.youtube.com##ytd-search ytd-secondary-search-container-renderer:has(ytd-universal-watch-card-renderer)
! ============================
! YouTube Channel Page
! ============================
! Channel Page: Header & Tabs Menu
! hide big top banner on channel header
www.youtube.com##[page-subtype="channels"] #page-header-banner
! hide links ("example.com and 3 more links") on channel header
!www.youtube.com##[page-subtype="channels"] yt-attribution-view-model
! hide "Join" button on channel header
www.youtube.com##[page-subtype="channels"] yt-flexible-actions-view-model .yt-flexible-actions-view-model-wiz__action:has(button-view-model:has-text(/^Join/))
! hide "Subscribe +" button on channel header
www.youtube.com##[page-subtype="channels"] yt-flexible-actions-view-model .yt-flexible-actions-view-model-wiz__action:has(yt-subscribe-plus-button-view-model)
www.youtube.com##[page-subtype="channels"] yt-flexible-actions-view-model .ytFlexibleActionsViewModelAction:has(>yt-subscribe-plus-button-view-model)
! fix existing "Subscribed" button (restore deleted button text)
www.youtube.com##[page-subtype="channels"] yt-flexible-actions-view-model yt-subscribe-button-view-model.yt-subscribe-button-view-model-wiz:style(width:auto !important;)
www.youtube.com##[page-subtype="channels"] yt-flexible-actions-view-model button.yt-spec-button-shape-next--icon-leading-trailing-no-text .yt-spec-button-shape-next__secondary-icon::before:style(display: block; content: "Subscribed"; margin-right: 6px;)
www.youtube.com##[page-subtype="channels"] yt-flexible-actions-view-model button.yt-spec-button-shape-next--icon-leading-trailing-no-text .yt-spec-button-shape-next__secondary-icon:style(display: flex; align-items: center; width: inherit;)
! hide "Shorts" tab in tab-menu on channel page
# www.youtube.com##[page-subtype="channels"] yt-tab-group-shape yt-tab-shape[tab-title="Shorts"]
! hide "Live" tab in tab-menu on channel page
# www.youtube.com##[page-subtype="channels"] yt-tab-group-shape yt-tab-shape[tab-title="Live"]
! hide "Posts" tab in tab-menu on channel page
# www.youtube.com##[page-subtype="channels"] yt-tab-group-shape yt-tab-shape[tab-title="Posts"]
! hide "Store" tab in tab-menu on channel page
# www.youtube.com##[page-subtype="channels"] yt-tab-group-shape yt-tab-shape[tab-title="Store"]
! quick CSS fix for that little bar below the tab-menu when some tabs are hidden
# www.youtube.com##[page-subtype="channels"] yt-tab-group-shape .yt-tab-group-shape-wiz__slider
# www.youtube.com##[page-subtype="channels"] yt-tab-group-shape .yt-tab-shape-wiz__tab-bar--tab-bar-selected:style(height: 2px !important;background-color: var(--yt-spec-text-primary) !important;)
! Channel Page: Page Content
! hide "Shorts" section on channel home page
! www.youtube.com##[page-subtype="channels"] ytd-section-list-renderer > #contents > ytd-item-section-renderer:has(ytd-reel-shelf-renderer)
! hide "Our Members" section on channel home page
www.youtube.com##[page-subtype="channels"] ytd-section-list-renderer > #contents > ytd-item-section-renderer:has(ytd-recognition-shelf-renderer)
! hide "For You" section on channel home page
# www.youtube.com##[page-subtype="channels"] ytd-section-list-renderer > #contents > ytd-item-section-renderer:has(h2:has-text(/For You/))
! hide videos I already watched in full (>=70%) on channel home page
!www.youtube.com##[page-subtype="channels"] ytd-grid-video-renderer:has(:is(#progress, .ytThumbnailOverlayProgressBarHostWatchedProgressBarSegment):matches-attr(style="/width: ([789][0-9]|100)%/"))
! hide videos I already watched in full (>=70%) on channel videos page
!www.youtube.com##[page-subtype="channels"] ytd-rich-item-renderer:has(:is(#progress, .ytThumbnailOverlayProgressBarHostWatchedProgressBarSegment):matches-attr(style="/width: ([789][0-9]|100)%/"))
! hide "Premium" videos on channel videos page
www.youtube.com##[page-subtype="channels"] ytd-rich-item-renderer:has(.badge[aria-label="Premium"])
! hide "Members only" videos on channel videos page
www.youtube.com##[page-subtype="channels"] ytd-rich-item-renderer:has(.badge-style-type-members-only)
! ============================
! YouTube Video Page
! ============================
! Video Page: Video Player
! reenable the possibility to scroll down the page when the player is in fullscreen
! Source: https://www.reddit.com/r/uBlockOrigin/comments/1n13if0/youtube_with_player_in_fullscreen_unable_to/
www.youtube.com##[deprecate-fullerscreen-ui]:remove-attr(deprecate-fullerscreen-ui)
! hide "1080p Premium HD" (which is nothing more than an ad for premium) in video quality settings menu
www.youtube.com##.ytp-quality-menu .ytp-menuitem:has(.ytp-premium-label)
! automatically click on "I understand and wish to proceed" button on "The following content may contain ..." warnings
! trusted-click-element will ONLY work within "trusted" filters (https://github.com/gorhill/ublock/wiki/Advanced-settings#trustedlistprefixes)!
!www.youtube.com##+js(trusted-click-element, div[id^="player-container"] + #error-screen #info:has(#reason) button[aria-label*="proceed"])
! Video Page: Title and Description
! prevent stats (such as likes and views) from live-updating
! example: https://www.reddit.com/r/youtube/comments/15c7ndi/youtube_has_added_live_updating_view_counts/
!||youtube.com/youtubei/v1/updated_metadata
! hide "smartimation" animations
! example: https://www.reddit.com/r/youtube/comments/15ri8fp/the_subscribe_button_now_plays_an_animation_when/
www.youtube.com##yt-smartimation > :not(.smartimation__content)
www.youtube.com##yt-animated-action > :not(.animated-action__content-with-background, .ytAnimatedActionContentWithBackground)
www.youtube.com##:is(.smartimation__content, .animated-action__content-with-background, .ytAnimatedActionContentWithBackground) > :has(> lottie-component)
! disable live reaction overlays
! example: https://www.reddit.com/r/youtube/comments/13886xr/how_can_i_disable_the_new_live_emoji_reactions/
www.youtube.com##yt-reaction-control-panel-view-model, yt-reaction-control-panel-overlay-view-model
! hide "Purchase" button below video
www.youtube.com##ytd-video-owner-renderer > #purchase-button
! hide "Join" button below video
www.youtube.com##ytd-video-owner-renderer > #sponsor-button
! fix existing "Subscribed" button (restore deleted button text)
www.youtube.com#$#ytd-subscribe-button-renderer[subscribe-button-invisible][style^="width"],ytd-subscribe-button-renderer[subscribe-button-invisible] yt-subscribe-button-view-model[style^="width"] { width: auto!important; }
www.youtube.com#$#ytd-subscribe-button-renderer[subscribe-button-invisible] button.yt-spec-button-shape-next--icon-leading-trailing-no-text .yt-spec-button-shape-next__secondary-icon::before {display: block; content: "Subscribed"; margin-right: 6px;}
www.youtube.com#$#ytd-subscribe-button-renderer[subscribe-button-invisible] button.yt-spec-button-shape-next--icon-leading-trailing-no-text .yt-spec-button-shape-next__secondary-icon {display: flex; align-items: center; width: inherit;}
! hide "Download" button (just an ad for premium) below video
www.youtube.com###below ytd-download-button-renderer
www.youtube.com##ytd-menu-popup-renderer ytd-menu-service-item-download-renderer
! hide "Thanks" button below video
www.youtube.com###below yt-button-view-model:has(button[aria-label="Thanks"])
www.youtube.com##ytd-menu-popup-renderer ytd-menu-service-item-renderer:has(yt-formatted-string:has-text(/^Thanks/))
! hide "Clip" button below video
www.youtube.com###below yt-button-view-model:has(button[aria-label="Clip"])
www.youtube.com##ytd-menu-popup-renderer ytd-menu-service-item-renderer:has(yt-formatted-string:has-text(/^Clip/))
! hide fundraiser badge below video title
www.youtube.com###below ytd-badge-supported-renderer
! hide that light blue "Clarify box" below video player, above video title
www.youtube.com###below > #clarify-box
! hide merch shelf in description
www.youtube.com###below ytd-structured-description-content-renderer #merch-shelf
! hide "Chapters" in description
www.youtube.com###below ytd-structured-description-content-renderer #items ytd-horizontal-card-list-renderer[modern-chapters]
! hide "Shorts remixing this video" in description
www.youtube.com###below ytd-structured-description-content-renderer #items ytd-reel-shelf-renderer
! hide that creator infobox with links at the end of the description box
www.youtube.com###below ytd-structured-description-content-renderer #items ytd-video-description-infocards-section-renderer
! hide merch shelf below description
www.youtube.com###below ytd-merch-shelf-renderer
! hide shitty AI summary nobody ever asked for below description
www.youtube.com###below [has-video-summary]
! hide all "Age-restricted video" notices below description, above comment section (https://support.google.com/youtube/answer/2802167)
www.youtube.com##ytd-metadata-row-container-renderer > #always-shown > ytd-metadata-row-renderer:has(a[href*="community_guidelines"],a[href*="age_restrictions"])
! hide all "Rating" notices below video description, above comment section (https://support.google.com/youtube/answer/146397)
www.youtube.com##ytd-metadata-row-container-renderer > #always-shown > ytd-metadata-row-renderer:has(a[href*="answer/146397"])
! hide that fucking "Experiencing interruptions?" toast message because of AdBlock
www.youtube.com##tp-yt-paper-toast#toast:has(yt-button-renderer#action-button a[href*=blocker])
! hide donation box for fundraiser videos
www.youtube.com###secondary #donation-shelf
! hide Shorts in video sidebar
www.youtube.com###columns #secondary ytd-compact-video-renderer:has(a[href^="/shorts/"])
! hide that weird channel card which sometimes appears somewhere in video sidebar
www.youtube.com###columns #secondary ytd-channel-renderer
! hide "Members first" videos in video sidebar
www.youtube.com##ytd-watch-flexy yt-lockup-view-model:has(.badge-shape-wiz--commerce)
! hide playlists in video sidebar
www.youtube.com##ytd-watch-flexy yt-lockup-view-model:has(yt-content-metadata-view-model:has-text(/^Playlist/))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment