Your guardian angel for YouTube — whitelist the channels you trust, filter the rest.
YouTube Angel helps you take back control of what you watch. You build a whitelist of channels you trust — everything else gets greyed out or triggers a warning, so you always make a conscious choice before diving in.
- Warning overlay — full-screen prompt when you navigate to a video from a non-whitelisted channel, with options to add it, go back, or stay anyway
- Homepage greying — non-whitelisted videos are dimmed on the YouTube homepage
- Sidebar greying — suggested videos on watch pages are dimmed if not from trusted channels
- Quick-add buttons — add or remove a channel directly from:
- Channel pages (next to the channel name)
- Video pages (next to the Subscribe button)
- Search results
- Import / Export — back up your whitelist as JSON and restore it anytime
- Per-feature toggles — enable or disable each feature independently from the settings panel
- Clone this repository
git clone https://github.com/ltrinchini/Youtube-Angel.git
- Open Chrome and go to
chrome://extensions - Enable Developer mode (toggle in the top-right corner)
- Click Load unpacked and select the project folder
The extension icon will appear in your toolbar. Click it to open the popup and manage your whitelist.
- Browse YouTube — when you land on a video from a channel not in your whitelist, the warning overlay appears
- Add a channel — click "Add to whitelist" in the overlay, or use the quick-add button on any channel/video/search page
- Manage your list — open the popup to search, browse recently added channels, or remove any entry
- Adjust settings — click the ⚙ gear icon to toggle individual features on or off
manifest.json
src/
├── content.js # All content script logic (runs on youtube.com)
├── background.js # Service worker
├── debug-flag.js # Toggle verbose logging for development
├── shared/
│ └── storage.js # chrome.storage helpers shared across contexts
├── popup/
│ ├── index.html
│ └── index.js
└── icons/
├── logo.svg
├── icon48.png
└── icon128.png
Enable debug logs
- Add
"src/debug-flag.js"immediately before"src/content.js"in thecontent_scripts→jsarray inmanifest.json. - Reload the extension.
All internal events will be logged to the browser console under the [YT Angel] prefix. Remove the entry from manifest.json before shipping.
Architecture note
src/content.js is intentionally self-contained with no ES module imports — Chrome MV3 content scripts loaded via manifest.json don't support type: "module". All storage logic is duplicated inline from shared/storage.js. The popup uses ES modules normally.
Issues and pull requests are welcome. If you find a YouTube UI change that breaks a feature (selectors drift over time), please open an issue with the affected page URL and a description of what's broken.
MIT — see LICENSE for details.