HYDE

Add-ons for Pale Moon and other applications
General discussion, compatibility, contributed extensions, themes, plugins, and more.

Moderators: FranklinDM, Lootyhoof

User avatar
Lecco
Moongazer
Moongazer
Posts: 8
Joined: 2025-08-16, 12:55

HYDE

Post by Lecco » 2026-04-06, 19:09

If you watch Youtube, you certainly have those moments where a clickbait thumbnail appears in the recommended section.
Unless you like big heads with open mouths or big red arrows showing nothing, they are just distracting and after a while quite annoying.

There is a Greasemonkey script for the default Youtube interface (Block Youtube Users) that is able to block those channels and hide them out of sight.
But for the users of the Vorapis script, there was nothing, until now.

I present you : HYDE - Hide Youtube Distractions Easily

Full disclosure :
This Greasemonkey script was written with the help of AI.

I am no Javascript expert and would never be able to create such a script myself.
On the other hand, I am able to understand the internal logic of the script.
You might dismiss the script as vibe coded, but that would not be true, since I unterstand vibe coding as making as little effort as possible.

What I did spent countless hours on :
  • writing multiple prompts to exactly describe what the script should do (no vibe coding)
  • putting a lot of thought into logic and user experience (no, the first versions were not good enough)
  • testing and debugging each function step-by-step, always comparing new and old code and sometimes spotting mistakes myself (no prompts like : it is still not working, fix it again)
  • using the script myself for some time before writing this post (no real-world untested code)
Additional remarks :
With all this said, I can confirm that everything works as intended and there are no side effects.
The code is also commented, so it should be easy to follow.
Although there are features that could be improved (and AI suggests them), I don't want to overcomplicate stuff.
The problem with more features is : more edge cases, which the script has to account for.
Therefore, I do not really plan to extend the features, since the script works exactly as I want it to.
If something breaks, I will fix the script, since I really cannot stand the clickbait thumbnails.
You are of course free to modify the script as you wish.

Fine print :
Although the script does not contain any harmful code, you should never run scripts from untrusted sources. If you do, you are doing this at your own risk.
I also welcome anyone with enough expertise to check the script out to confirm it does not perform any harmful actions.

How the script works :
The script was written for the main, search and watch page.
If the script is enabled, the HYDE Menu button appears next to the Upload button.
On page load, the script scans the whole page for videos from channels that are on the blocklist and hides the matching containers.
The page is then observed for new elements (e.g. when you click on load more) and additional matching containers get hidden as well.
The observer runs only for the defined amount of time to conserve CPU cycles.
Default timeout is set to 10 seconds in case someone has slow connection and the page takes a long time to fully load.
I have set mine to 5 seconds and it works fine.
The settings are saved and loaded by using GM_setValue and GM_getValue.

The usage is simple :
After installing the script into Greasemonkey and loading a new Youtube page, the script starts in Debug Mode and [x] markers appear next to the channel names.
To block a channel, right click the [x] marker and select Block by exact name or Block by partial name.
The difference between those two options is :
  • exact - channel container gets hidden only if its name matches exactly
  • partial - channel container gets hidden if its name contains the pattern
The channel is then put on the selected blocklist, the container gets a red border and a label showing which blocklist the channel is on.
After you have blocked all channels that you want, you can deactivate the Debug mode and hide the [x] markers using the appropriate entries in the HYDE Menu.
If you want to block another channel in the future, it is enough to activate the [x] markers, the Debug Mode is only needed for testing.

When you block a channel :
  • by exact name - the channel container is hidden immediately.
  • by partial name - a popup shows up, allowing you to edit the pattern if needed. After clicking on save, the channel container is hidden immediately.
Explanation of the HYDE Menu items :
  • Filtering Enabled - Enables / Disables the hiding of channel containers. When disabled the HYDE Menu colour turns red.
  • Debug Mode - when enabled, channel containers are not hidden, but get a red border instead and a label showing which blocklist is the channel on. The HYDE Menu colour turns yellow.
  • Show Markers - when enabled, [x] markers appear next to channel names
  • Observer Timeout - Sets observer timeout in seconds. After the defined timeout, the observer stops. "mousemove", "keypress", "scroll" and "mouseclick" activate the observer again and restart the timeout.
  • Blocklist - Mouseover to show submenu
  • View / Edit - Popup window appears which shows both blocklists with an option to remove or add items. Items are sorted alphabetically.
  • Export - Exports both blocklists to JSON file.
  • Import - Imports blocklist from JSON file, preventing duplicates.
  • Clear - Clears both blocklists, asks for confirmation.
Screenshots :
HYDE Menu
HYDE Menu.png
Filtering Disabled
Filtering Disabled.png
Filtering Enabled + Debug mode Enabled
Debug Enabled.png
Filtering Enabled
Filtering Enabled.png
Example of partial filtering
partial block example.png
You do not have the required permissions to view the files attached to this post.

User avatar
back2themoon
Knows the dark side
Knows the dark side
Posts: 3154
Joined: 2012-08-19, 20:32

Re: HYDE

Post by back2themoon » 2026-04-06, 22:15

Thanks for this script. No matter the method, you clearly put in a lot of effort. :thumbup:

User avatar
sinfulosd
Moonbather
Moonbather
Posts: 57
Joined: 2022-07-13, 03:01

Re: HYDE

Post by sinfulosd » 2026-04-09, 19:33

Thank you for your effort on making this script. Did you make this script to be compatible with the old fork of Greasemonkey, or the new one?
Windows 11
Pale Moon 34.2.0, Firefox 149.0, Ungoogled Chromium 147.0

User avatar
Lecco
Moongazer
Moongazer
Posts: 8
Joined: 2025-08-16, 12:55

Re: HYDE

Post by Lecco » 2026-04-11, 14:12

@ sinfulosd :

It works perfectly with the fork from janekptacijarabaci - latest version 3.31.4.

The script doesn't use any special Greasemonkey APIs, just GM_getValue and GM_setValue to store / retrieve settings and blocklists.

Looking at : https://sourceforge.net/p/greasemonkey/wiki/GM_getValue/, it seems like these APIs have been available for a long time. (0.3 beta - 3.12.0)

I will look into fixing the script if it turns out to be incompatible with your new fork.