Skip to content

Repository files navigation

YouTube Control Logo

YouTube Control

Block Shorts, hide recommendation feeds, and detox your YouTube experience.

MIT License Manifest V3 Open Issues Pull Requests


Overview

YouTube Control is a lightweight, privacy-focused browser extension that strips away distractions, blocks algorithmic rabbit holes, and gives you complete control over YouTube's layout.

  • 100% Local & Private: No analytics, telemetry, or external API calls. All settings stay in your browser's local storage.
  • Fast & Lightweight: Built with modular vanilla JavaScript, hardware-accelerated CSS, and compiled into zero-overhead bundles via esbuild.
  • Manifest V3 Native: Fully compliant with modern Chrome, Microsoft Edge, Brave, Opera, and Mozilla Firefox standards.

πŸ“₯ Store Downloads

Store Version Rating Users
Chrome Web Store
Firefox Add-ons
Microsoft Edge Add-ons

Visual Tour

Minimal Settings Popup
Toggle distraction blockers, video layouts, and styling options instantly.

Settings Popup Menu

Block YouTube Shorts
Eliminate Shorts shelves, navigation buttons, reels, and sidebar links.

Block YouTube Shorts

Dock Comments to Sidebar
Read and post comments beside the player without losing your place in the video.

Dock Comments to Sidebar

Sticky Player & Dual Scrolling
Pins the video to the top and lets recommendations and comments scroll independently.

Sticky Player & Dual Scrolling

Mini Fullscreen Mode
Fills the browser viewport with the video while keeping your address bar and tabs accessible.

Mini Fullscreen Mode


Features

Category Feature What It Does
🚫 Shorts & Feeds Hide Shorts Removes Shorts shelves, navigation buttons, channel reels, and sidebar links.
🚫 Shorts & Feeds Hide Home Feed Removes the video recommendation grid on the YouTube home page.
🚫 Shorts & Feeds Hide Mix Playlists Hides auto-generated YouTube Mixes on Home feeds and watch pages.
🚫 Shorts & Feeds Hide Category Bar Hides topic filter pills on Home feeds, Channel sorting pills, and Watch page chips.
🚫 Shorts & Feeds Hide More From YouTube Hides YouTube Premium, Music, and Kids links from the sidebar menu.
🚫 Shorts & Feeds Hide Sidebar Footer Hides policy and copyright footer text from the left navigation drawer.
πŸ“ Layouts Custom Grid Columns Choose between 2, 3, 4, 5, or 6 video cards per row on Home and Subscriptions.
πŸ“ Layouts Sticky Player & Dual Scroll Pins the video player at the top and enables independent, hardware-accelerated column scrolling.
πŸ’¬ Comments Dock Comments to Sidebar Moves the comments section into the right sidebar next to the video player.
πŸ’¬ Comments 1-Click Refresh Comments Silently reloads comments in the background without refreshing the page or interrupting audio.
πŸ“Έ Comments Comment & Thread Screenshot 1-click camera button that copies high-resolution comment cards or full discussion threads to the clipboard.
πŸ’¬ Comments Hide Comments & Chat Removes video comments and live chat replay entirely.
πŸ‘οΈ Visual Detox Blur Thumbnails Blurs video thumbnails until you hover your mouse over them.
🎨 Styling Grayscale Mode Converts the entire YouTube interface to distraction-free black & white.
🎨 Styling Block Ambient Mode Removes the glowing background halo lighting behind the video player.
🎨 Styling Hide Scrollbars Hides scrollbars across Home feeds, Sidebar, Watch page, or Panels while keeping smooth scrolling intact.
πŸ“Ί Watch Page Hide Recommended Videos Removes the recommended video sidebar on watch pages.
πŸ“Ί Watch Page Hide Buttons & Stats Hides Subscribe buttons, view counts, and like counts.
πŸ“Ί Watch Page Hide Top Header Hides the top search bar and header navigation.
πŸŽ›οΈ Player Tools Playback Speed Button Adds an in-player button to cycle between 3 custom speeds (e.g., 1.0x, 1.5x, 2.0x) and remembers your speed across videos.
πŸ“Έ Player Tools Video Screenshot Captures a high-resolution PNG frame directly from the video stream to your clipboard/downloads.
πŸ”² Player Tools Mini Fullscreen Expands the player to fill the window while keeping your tabs and bookmarks bar visible.

⌨️ Keyboard Shortcuts

Key Action Condition
Esc Exit Mini Fullscreen When Mini Fullscreen is active
T Exit Mini Fullscreen When toggling Cinema / Theater Mode

πŸ“ Repository Structure

YouTube-Control/
β”œβ”€β”€ src/                    # Source code (edit here)
β”‚   β”œβ”€β”€ manifest.json       # Manifest V3 extension configuration
β”‚   β”œβ”€β”€ background.js       # Lightweight background service worker
β”‚   β”œβ”€β”€ popup.html          # Popup settings user interface
β”‚   β”œβ”€β”€ popup.css           # Popup styling
β”‚   β”œβ”€β”€ popup.js            # Popup controller logic
β”‚   β”œβ”€β”€ content.js          # Main content script entry point
β”‚   β”œβ”€β”€ content.css         # Injected layout, theme, and detox styles
β”‚   β”œβ”€β”€ modules/            # Self-contained ES modules
β”‚   β”‚   β”œβ”€β”€ comment-canvas.js   # Canvas drawing, thread curves & screenshot export
β”‚   β”‚   β”œβ”€β”€ speed-controller.js # Video rate cycling, memory & event listeners
β”‚   β”‚   β”œβ”€β”€ watch-navigation.js # URL tracking, lifecycle hooks & scroll resets
β”‚   β”‚   └── settings-schema.js  # Unified settings definitions & parent/sub rules
β”‚   └── icons/              # Extension icons (16px, 48px, 128px)
β”œβ”€β”€ dist/                   # Bundled unpacked builds for browsers (generated)
β”‚   β”œβ”€β”€ chrome/             # Ready-to-load Chrome/Edge build
β”‚   └── firefox/            # Ready-to-load Firefox build
β”œβ”€β”€ releases/               # Store upload zip archives (generated)
β”œβ”€β”€ test/                   # Automated unit and regression test suites
β”‚   β”œβ”€β”€ test-comment-canvas.js
β”‚   β”œβ”€β”€ test-scrolling-performance.js
β”‚   β”œβ”€β”€ test-settings-schema.js
β”‚   β”œβ”€β”€ test-sidebar-footer-comments.js
β”‚   β”œβ”€β”€ test-speed-controller.js
β”‚   └── test-watch-navigation.js
β”œβ”€β”€ build.py                # esbuild bundler, minifier, and packaging script
β”œβ”€β”€ package.json            # Node development dependencies and test scripts
β”œβ”€β”€ CHANGELOG.md            # Public user-facing version notes
β”œβ”€β”€ CONTRIBUTING.md         # Developer setup and contribution guide
└── LICENSE                 # MIT License

πŸ› οΈ Local Development

Prerequisites

1. Clone & Install Dependencies

git clone https://github.com/vishwa-vsr/YouTube-Control.git
cd YouTube-Control
npm install

2. Run Automated Tests

npm test

3. Build Extension Bundles

Run the build script to bundle src/ into the dist/ directory via esbuild:

# Build unpacked distribution folders for Chrome, Firefox, and Edge
python build.py -y

# Optional: Build unpacked distributions AND package store-ready zip archives in releases/
python build.py -y --zip

πŸ”Œ Loading in Your Browser

Google Chrome, Edge, Brave, or Opera

  1. Navigate to chrome://extensions/ (or edge://extensions/ in Edge).
  2. Enable Developer mode using the toggle switch.
  3. Click Load unpacked.
  4. Select the dist/chrome directory inside this repository.

Mozilla Firefox

  1. Navigate to about:debugging#/runtime/this-firefox.
  2. Click Load Temporary Add-on....
  3. Select the manifest.json file inside dist/firefox.

Tip

Active Development Flow: Edit files inside src/ or src/modules/, run python build.py -y, and click the Reload (↻) icon on the extension card in your browser's extension manager.


πŸ” Troubleshooting

Issue Cause Fix
Cannot find module 'esbuild' Missing Node dependencies. Run npm install in the project root.
Changes don't appear on YouTube You edited src/ but didn't recompile. Run python build.py -y and click Reload in chrome://extensions.
Script error loading src/ in Chrome You loaded src/ instead of dist/chrome. Load the compiled dist/chrome folder (content scripts require bundling).
YouTube layout looks broken YouTube changed Polymer DOM nodes. Run npm test to verify selectors against fixtures.

πŸ”’ Privacy & Permissions

  • Permission requested: storage only.
  • Why: To save your toggle preferences locally via chrome.storage.local.
  • Zero network tracking: No telemetry, tracking pixels, or remote servers. See our Privacy Policy.

🀝 Contributing

Bug reports, feature requests, and code contributions are welcome! Please read the Contributing Guide before submitting a pull request.


πŸ“„ License

Distributed under the MIT License.

About

A distraction-free browser extension to block YouTube Shorts, blur thumbnails, dock comments, and reclaim your focus.

Topics

Resources

Contributing

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages