Return YouTube Dislike (PC Only)

Desktop-only fork of Return YouTube Dislike. Adds Shorts SPA support, visual like/dislike ratio bar, and a class-based architecture.

Autore
koyasi777
Installazioni giornaliere
0
Installazioni totali
25
Valutazione
0 0 0
Versione
4.1.0
Creato il
02/08/2025
Aggiornato il
06/09/2025
Dimensione
16,1 KB
Compatibilità
Compatibile con Firefox Compatibile con Chrome Compatibile con Opera Compatibile con Safari Compatibile con Edge
Licenza
AGPL-3.0-only
Applica a

Return YouTube Dislike (PC Only)

🧭 Overview

This is a desktop-focused fork of the original Return YouTube Dislike userscript, rebuilt with a class-based architecture, enhanced UI elements, and greater reliability for Single Page Application (SPA) navigation on YouTube.

Unlike the original script, this version is designed only for PC environments, and adds several modern features to improve usability and maintainability.


✨ Key Features

  • ✅ Supports Shorts SPA navigation — dislikes remain visible after switching videos.
  • ✅ Displays a like/dislike ratio bar under the buttons (desktop only).
  • Hover tooltip shows accurate like/dislike counts.
  • ✅ Fully object-oriented codebase (ES6 class).
  • MutationObserver + timeout-based initialization — more robust than relying on yt-navigate-finish.
  • DOM element caching for performance and efficiency.
  • ✅ Custom CSS styling — avoids breaking due to YouTube class name changes.

🚀 Installation Guide

  1. Install a userscript manager:

  2. Install the userscript:
    👉 Click here to install

  3. Visit YouTube and open any video — the enhanced dislike interface will activate automatically.


🔄 Why This Fork?

The original userscript is great, but this version introduces key improvements:

Feature Original v3.1.5 This Version (v4.0.7)
Architecture Procedural, global variables ES6 class-based, encapsulated state
SPA Navigation (Shorts) Relies on yt-navigate-finish Uses <title> mutation + timeout fallback
Rating Display Text-only Visual ratio bar with hover tooltip
DOM Handling Repeated queries Cached DOM elements
Asynchronous Code fetch().then() async/await with GM.xmlHttpRequest wrapper
CSS Styling Tied to YouTube classes Fully isolated and scoped CSS
State Reliability Tracks previousState manually Checks actual DOM state per event

📄 License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0), in accordance with the upstream repository.

  • License text
  • You are free to use, modify, and distribute under the terms of this license.

🤝 Attribution


📬 Issues / Contributions

Pull requests and issues are welcome!
Please feel free to report bugs, request features, or fork this further.

👉 Open an issue