A lightweight Chrome Extension that removes Shorts from Youtube.
Free. Easy-to-use. Toggle switch for quick disabling.
- Clone this repo or download as .ZIP
- Go to
chrome://extensionsin Chrome. - Enable Developer Mode (top right).
- Click Load unpacked and select the extension folder.
- Removes the Shorts in the YouTube homepage and sidebar
- Easy toggle on/off
- Automatically works on dynamically loaded content
The extension now also removes:
- Shorts tab and sections from search results
- YouTube Playables shelf from the homepage
- Real toggle switch — click the toolbar icon for an on/off switch. Turning it off restores Shorts instantly, no page reload needed (state syncs across your devices).
- Fixed the watch-page Shorts shelf ("Shorts remixing this video") not being removed — YouTube changed that element from
<span id="title">to<yt-formatted-string id="title">, so title lookups now match by id regardless of tag. - Performance — the
MutationObserveris now debounced withrequestAnimationFrame, so it no longer runs a full sweep on every DOM change. - Hiding is now CSS-based (reversible) instead of destructively removing DOM nodes.
- Fixed Shorts not being hidden in tabs loaded in the background — the sweep used
requestAnimationFrame, which browsers pause in hidden tabs. It now usessetTimeout(which still fires when hidden) and re-sweeps when the tab becomes visible.
manifest.json— Chrome extension manifest (v3)content.js— Main script for DOM filteringpopup.html/popup.js— Toolbar toggle switchicon.png— Extension icon (optional)
This extension uses a simple content script to:
- Detect Shorts and Playables sections using CSS selectors and text
- Hide them (reversibly, via a CSS class) from the homepage, search results, and video sidebars
- Monitor for dynamic content using a debounced
MutationObserver - Store the on/off state with
chrome.storage.sync
No background scripts or tracking. The only permission requested is storage, used solely to remember the toggle state. 100% local.
This extension does not collect or transmit any data.
It runs entirely in the browser and only affects the DOM of YouTube pages.
MIT License — Free to use, modify, or distribute.
Built with AI. The prompt that generated the logic is included in this repository as prompt.txt.
If you like the project, leave a review or star it on GitHub (if public)!
Feedback and contributions welcome.