YouTube Bulk Hide
YouTube Bulk Hide is a Chrome extension (Manifest V3) that lets you select and hide multiple videos from your YouTube subscriptions feed at once, plus set auto-hide rules for channels and title keywords. It scratches a personal itch: a subscriptions feed full of stuff I do not want to scroll past one tile at a time.
🔗 github.com/spbavarva/yt-bulk-hide
What it does
- Bulk select and hide. Hover any video tile on your subscriptions page and a checkbox appears in the corner. Check as many as you want, then click Hide selected (or press
Shift+Alt+H). - Auto-hide rules. From the settings popup, add channel names or title keywords (one per line, case-insensitive substring match). Matching videos are hidden automatically on page load.
The interesting part: how the hiding works
The obvious way to hide a video is to reconstruct YouTube’s internal youtubei/v1/feedback API call. That is 2 to 3 times faster, but it needs the full auth dance (SAPISIDHASH, X-Goog-AuthUser, visitor data) and breaks every time YouTube rotates its header contracts.
Instead, the extension programmatically opens each tile’s 3-dot menu and clicks the native Hide item. It is exactly what happens when you hide a video by hand, so it is as stable as YouTube’s own UI. DOM interaction only breaks when YouTube restructures tile markup, which is rare, versus header contracts that change often. A deliberate trade of speed for durability.
To stay safe, hiding throttles at about 250 ms per video to avoid menu-open race conditions, so hiding 40 videos takes roughly 10 seconds.
Under the hood
manifest.json MV3 manifest
background.js Service worker, routes the keyboard shortcut
content.js Injected on the subscriptions page, core logic
content.css Checkbox + toolbar styles
popup.html/css/js Settings popup for auto-hide rules
icons/ 16 / 48 / 128 px icons
No network calls, no tracking, no permissions beyond the YouTube subscriptions page. It is built for personal use and loads as an unpacked extension in Developer mode.
Room to grow
The code is written to be extended:
- Regex keywords by swapping the substring check in
applyAutoHide()for a guardedRegExp. - Hide by video age by parsing the published-time text on each tile and filtering anything older than N days.
- Bulk undo by keeping references to hidden tiles and re-clicking YouTube’s own short-lived Undo link.