Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shorts Remover

Browser extension that removes YouTube Shorts from the interface and redirects Shorts URLs to the standard video player.

Features

  • URL redirect — visiting /shorts/VIDEO_ID automatically redirects to /watch?v=VIDEO_ID (works for typed URLs, external links, and in-app navigation)
  • Hides Shorts from sidebar — removes the "Shorts" button from the left navigation panel
  • Hides Shorts shelf — removes the Shorts section from the homepage
  • Hides Shorts from search — removes Shorts filter chips, tabs, and individual Shorts results
  • No UI — install and forget, no popup, no settings, no configuration
  • No tracking — zero analytics, zero backend calls, zero data collection
  • Minimal — 3 files, no dependencies, no frameworks, no build step

Install

Chrome / Edge / Brave (Chromium)

  1. Open chrome://extensions
  2. Enable Developer mode (toggle in top-right)
  3. Click Load unpacked
  4. Select the shorts_remover folder

Safari (macOS & iOS)

Requires Xcode (free from the App Store, macOS 11+).

  1. Open Safari/ShortsRemover/ShortsRemover.xcodeproj in Xcode
  2. Select the target matching your platform:
    • macOS — choose ShortsRemover (macOS) scheme
    • iPhone/iPad — choose ShortsRemover (iOS) scheme
  3. Build and run (Cmd+R)
  4. In Safari → Settings → Extensions, enable ShortsRemover and grant permission for youtube.com

Simulator first-time setup: Safari → Settings → Advanced → check Show features for web developers, then Safari → Settings → Developer → check Allow unsigned extensions.

Real iPhone: Requires an Apple Developer account for code signing. The iOS simulator works without one.

macOS 10.14 (Mojave) note: Safari Web Extensions require Safari 14+ (macOS 11+). Mojave cannot build or run this extension. Use the Chromium version instead.

How it works

Mechanism What it does
rules.json Declarative net request rule: regex captures video ID from /shorts/(ID) and redirects to /watch?v=ID
content.jsyt-navigate-finish listener Catches SPA navigation within YouTube and redirects to /watch
content.jsMutationObserver Watches for dynamically loaded Shorts elements and hides them immediately
content.js — DOM queries Hides sidebar entry, shelves, chips, tabs, and individual Shorts video results

Project structure

shorts_remover/
├── manifest.json         Chrome Manifest V3
├── rules.json            DNR redirect rule
├── content.js            Content script (runs on youtube.com)
├── icons/
│   ├── icon16.png
│   ├── icon48.png
│   └── icon128.png
└── Safari/
    └── ShortsRemover/
        ├── ShortsRemover.xcodeproj   Xcode project (macOS + iOS)
        ├── Shared (App)/             Code shared across platforms
        ├── Shared (Extension)/       Extension resources (content.js, rules.json)
        ├── macOS (App)/              macOS-specific files
        ├── macOS (Extension)/
        ├── iOS (App)/                iOS-specific files
        └── iOS (Extension)/

Permissions

Only one permission: declarativeNetRequest. No storage, no tabs, no scripting, no host data access beyond YouTube.

License

MIT

About

Browser extension that removes YouTube Shorts

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages