So It Is Solutions's Avatar

So It Is Solutions

@soitis.dev.bsky.social

Quare software, so it is ๐ŸŒ https://soitis.dev

68 Followers  |  25 Following  |  109 Posts  |  Joined: 29.12.2024  |  2.3905

Latest posts by soitis.dev on Bluesky

Release v1.14.0

- Added a Block ads option (default: enabled)
- Added a Disable Ambient mode option (default: enabled)
- Hide Comments now also hides the Commments button in the Shorts player
- Fixed Hide Sponsored videos & promos being detected by YouTube
- Fixed Full-size theater mode not working due to YouTube CSS changes
- Fixed hiding some ad slots on mobile after YouTube changes
- Fixed paid content overlay not being hidden in video previews
- Removed the Skip ads option since it's no longer needed

Release v1.14.0 - Added a Block ads option (default: enabled) - Added a Disable Ambient mode option (default: enabled) - Hide Comments now also hides the Commments button in the Shorts player - Fixed Hide Sponsored videos & promos being detected by YouTube - Fixed Full-size theater mode not working due to YouTube CSS changes - Fixed hiding some ad slots on mobile after YouTube changes - Fixed paid content overlay not being hidden in video previews - Removed the Skip ads option since it's no longer needed

Currently testing the next version of Control Panel for YouTube, in which it won't matter if the advertising company which makes your browser just killed uBlock Origin

08.08.2025 00:31 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Roadmap for Control Panel for YouTube:

v1
- Improved adblocking
- Responsive grid items per row options
- Revert auto-translated titles & descriptions, not just audio

v2
- Settings sync across browsers/devices
- Muted words for videos & comments
- Animate hiding
- Preview comments & descriptions?

04.08.2025 04:56 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Code for a JavaScript window.fetch Proxy which modifies the result of the /player request, ignoring YouTube's dummy request

Code for a JavaScript window.fetch Proxy which modifies the result of the /player request, ignoring YouTube's dummy request

There's probably a smarter way to do this, but cloning the request will let you peek at the true URL for the patched request with the data: URL payload

04.08.2025 03:29 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Conveniently, the process of finding out what YouTube is doing tells you exactly which requests you need to modify and which properties you need to remove!

04.08.2025 03:08 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Event: isTrusted property - Web APIs | MDN The isTrusted read-only property of the Event interface is a boolean value that is true when the event was generated by the user agent (including via user actions and programmatic methods such as HTML...

YouTube also added a new interstitial ad format a while back which appears to be using trusted events under the hood, which means it can't be auto-clicked away

developer.mozilla.org/en-US/docs/W...

This means our only option is to start preventing ads from displaying in the first place

04.08.2025 03:08 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Minified YouTube source code which adds an element to <body>, immediately checks if it's visible and removes it

Minified YouTube source code which adds an element to <body>, immediately checks if it's visible and removes it

Control Panel for YouTube was getting caught by YouTube recreating the entire DOM structure for some of their ad / sponsored / merch elements and checking if their computed style ends up not being visible

This ended up being very easy to work around, so the game is on!

04.08.2025 03:08 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

These don't catch Control Panel for YouTube because it's not injecting a <script> tag and it's not blindly waiting for things to appear - some of these will only catch your classic lazy userscript/extension which is MutationObserver-ing {childList: true, subtree: true} or polling on an interval

04.08.2025 03:08 โ€” ๐Ÿ‘ 7    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Minified YouTube source code which checks if any of the <script> elements in the document contain a particular string which must be shared by certain content blockers

Minified YouTube source code which checks if any of the <script> elements in the document contain a particular string which must be shared by certain content blockers

Minified YouTube source code which finishes setting up a fake video player to look as if it's started playing an ad, and an event listener which will fire if anything external changes its timestamp

Minified YouTube source code which finishes setting up a fake video player to look as if it's started playing an ad, and an event listener which will fire if anything external changes its timestamp

Minified YouTube source code adding an invisible skip button and checking if anything immediately clicks it

Minified YouTube source code adding an invisible skip button and checking if anything immediately clicks it

Some others:
- Find all <script> tags, check if they contain a specific string
- Add a fake video player with a hardcoded video Blob which has "ad is playing now" classes and check if anything changes its timestamp within 5 seconds
- Add a fake Skip button and see if anything clicks it

04.08.2025 03:08 โ€” ๐Ÿ‘ 7    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Minified JavaScript source code from YouTube creating a request object with a url property designed to look like a /player response if you do regular .url access on it

Minified JavaScript source code from YouTube creating a request object with a url property designed to look like a /player response if you do regular .url access on it

Big-brained: a dummy fetch() request which patches the Request object's url property so it looks like a /player request, but it actually contains a hard-coded data: URL payload used to test if player ads got removed from the response

04.08.2025 03:08 โ€” ๐Ÿ‘ 7    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
A big switch statement in YouTube's minified source used to iterate through some of their adblock detection routines

A big switch statement in YouTube's minified source used to iterate through some of their adblock detection routines

We found YouTube's adblock detection routines in their minified source code and are adding some workarounds for the next version of Control Panel for YouTube.

One of them was big-brained, the rest were fairly rudimentary (including the one which was flagging Control Panel for YouTube).

04.08.2025 03:08 โ€” ๐Ÿ‘ 23    ๐Ÿ” 4    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1
Preview
Control Panel for Twitter Browser extension which gives you more control over your Twitter timeline and adds missing features and UI improvements - for desktop and mobile browsers

New in Control Panel for Twitter v4.13.0:

- Added an option to hide Likes in Notifications
- Hide the Premium not-a-notification in Notifications
- Fixed the Twitter favicon not being restored in some browsers until you get notifications

Release notes: github.com/insin/contro...

03.08.2025 09:41 โ€” ๐Ÿ‘ 2    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

(or these could have been broken for ages because we always have the entire Related videos section hidden)

30.07.2025 08:03 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Pending commit message in git-gui for Control Panel for YouTube:

Handle <yt-list-view-model> menus and <yt-lockup-view-model> video elements

These are now being used in Related on desktop

- Fixed hiding Download Premium upsell in <yt-list-view-model> menus
- Fixed adding custom Hide channel menu item to <yt-list-view-model> menus
  on <yt-lockup-view-model> videos
- Fixed styling of custom menu items in <yt-list-view-model> menus
- Fixed hiding the Share menu item on Related videos
- Fixed hiding Live videos in Related on desktop
- Fixed hiding Streamed videos in Related on desktop
- Fixed hiding Watched videos by % in Related on desktop

Some of YouTube's own translation string names changed:
- Fixed muting ad audio

Pending commit message in git-gui for Control Panel for YouTube: Handle <yt-list-view-model> menus and <yt-lockup-view-model> video elements These are now being used in Related on desktop - Fixed hiding Download Premium upsell in <yt-list-view-model> menus - Fixed adding custom Hide channel menu item to <yt-list-view-model> menus on <yt-lockup-view-model> videos - Fixed styling of custom menu items in <yt-list-view-model> menus - Fixed hiding the Share menu item on Related videos - Fixed hiding Live videos in Related on desktop - Fixed hiding Streamed videos in Related on desktop - Fixed hiding Watched videos by % in Related on desktop Some of YouTube's own translation string names changed: - Fixed muting ad audio

YouTube's "old" menu style (used in most places) with Control Panel for YouTube's custom Hide channel menu item focused

YouTube's "old" menu style (used in most places) with Control Panel for YouTube's custom Hide channel menu item focused

YouTube's "new" menu style (used in Related videos) with Control Panel for YouTube's custom Hide channel menu item focused - completely different menu font style and focus appearance

YouTube's "new" menu style (used in Related videos) with Control Panel for YouTube's custom Hide channel menu item focused - completely different menu font style and focus appearance

YouTube is rolling out some changes which break or impair your userstyles, userscripts and extensions, we're working on fixes for Control Panel for YouTube

We're also making sure our custom menu items look just like their native siblings, even though it's weird YouTube has 2 menu styles in one app

30.07.2025 08:01 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1
Control Panel for YouTube v1.13.0 options popup in macOS Safari

Control Panel for YouTube v1.13.0 options popup in macOS Safari

Control Panel for YouTube v1.13.0 options popup in Chrome

Control Panel for YouTube v1.13.0 options popup in Chrome

Control Panel for YouTube v1.13.0 fixes the Hide Playlists option hiding far more than that, makes option groups collapsible, puts ads-related options into a new group with a visible warning, adds a new option to enable background play on mobile and more!

Release notes: github.com/insin/contro...

28.07.2025 06:04 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

The "disclosure buttons", they only light up when you click directly on them

26.07.2025 13:42 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
New option groups in the in-development version of Control Panel for YouTube - adding support for iOS-style footer text on iOS Safari

New option groups in the in-development version of Control Panel for YouTube - adding support for iOS-style footer text on iOS Safari

Sweating the details

26.07.2025 12:43 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Available now for Chrome and Safari, the latest version of Control Panel for YouTube continues to give you both of the objectively best ways to enjoy YouTube Shorts:

1. Remove all the crap on top of them and disable looping

2. Completely remove them from YouTube

The choice is yours!

25.07.2025 20:04 โ€” ๐Ÿ‘ 6    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Control Panel for YouTube v1.12.0 contains infinitely more Shorts changes than we wanted to work on, after recent YouTube changes broke some Shorts-related features

Release notes: github.com/insin/contro...

Awaiting review in all browser extension stores

25.07.2025 08:24 โ€” ๐Ÿ‘ 7    ๐Ÿ” 2    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 1
A Hacker News /upvoted page, with new comment counts visible next to items

A Hacker News /upvoted page, with new comment counts visible next to items

Imagine being able to actually follow what's happened in comment threads in Hacker News beyond or your first visit

Or just install Comments Owl for Hacker News and do it:

soitis.dev/comments-owl...

15.07.2025 14:26 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Email from Anthropic:

Your organization โ€œSo It Is Solutionsโ€ has $9.89 Anthropic API credits that will expire on August 13, 2025 UTC.

Email from Anthropic: Your organization โ€œSo It Is Solutionsโ€ has $9.89 Anthropic API credits that will expire on August 13, 2025 UTC.

Anthropic API credits can expire? What the artificial scarcity?

15.07.2025 05:19 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1
Preview
AI Overview Hider for Google Browser extension which hides the AI Overview section in Google search results - for desktop and mobile browsers

AI Overview Hider for Google v1.0.9 fixes hiding AI Overviews inline with other search results on desktop after Google changed their formatting slightly

Release notes: github.com/insin/ai-ove...

16.06.2025 04:05 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Control Panel for Twitter Browser extension which gives you more control over your Twitter timeline and adds missing features and UI improvements - for desktop and mobile browsers

Control Panel for Twitter v4.12.3 fixes a bug hiding Discover More tweets, and moreโ€ฆ

github.com/insin/contro...

14.06.2025 04:22 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
225,584 users, 4.72/5 average review score

225,584 users, 4.72/5 average review score

Control Panel for Twitter just passed the 225,000 user mark on Chrome Web Store, that's a lot of ads and premium boosted replies hidden and a lot less noise on the timeline for a lot of people

Unregretted user-minutes you can use

Get it for desktop and mobile browsers: soitis.dev/control-pane...

13.06.2025 01:56 โ€” ๐Ÿ‘ 3    ๐Ÿ” 2    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Control Panel for YouTube Browser extension which gives you more control over YouTube by adding missing options and UI improvements - for desktop and mobile browsers

Control Panel for YouTube v1.11.3 fixes hiding comments on mobile

soitis.dev/control-pane...

11.06.2025 02:55 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
A Tweet on Twitter as seen when using Control Panel for Twitter v4.12.0 - the Tweet source label is back and on this particular Tweet from @zeldman.bsky.social in 2023 it says "Twitter Web App"

A Tweet on Twitter as seen when using Control Panel for Twitter v4.12.0 - the Tweet source label is back and on this particular Tweet from @zeldman.bsky.social in 2023 it says "Twitter Web App"

Oops, Twitter never changed their source name labels, they just hid them, and Control Panel for Twitter v4.12.0 brings them back

Release notes: github.com/insin/contro...

Release Tweet thread: twitter.com/ControlPanel...

31.05.2025 12:57 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Control Panel for YouTube Browser extension which gives you more control over YouTube by adding missing options and UI improvements - for desktop and mobile browsers

Control Panel for YouTube v1.11 adds a new Hide Premium upsells option, a bunch of new Shorts options (hide suggested searches/comments etc., disable looping, always show progress bar) and makes a few more features work in all YouTube display languages

Release notes: github.com/insin/contro...

27.05.2025 03:56 โ€” ๐Ÿ‘ 6    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Current solution for communication of config in browser extensions which need direct access to the page and can use the exact same codebase for MV2 and MV3, works in Firefox, Chrome (etc.), Safari

1:1 communication between the main world page script & the isolated world content script in each tab

27.05.2025 03:45 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Where does this happen? In thumbnails? In the video page itself? Or just everywhere? We can have a look at how it's implemented to see what we can do

27.05.2025 03:41 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
New versions of Control Panel for Twitter and YouTube awaiting review at all browser extension stores

New versions of Control Panel for Twitter and YouTube awaiting review at all browser extension stores

Tired: releasing anything on a Friday
Wired: releasing everything on a Monday

26.05.2025 07:31 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Drowning kid + underwater skeleton meme:

Kid being played with: Chrome / Safari
Kid drowning: Edge (only sometimes though)
Underwater skeleton: Firefox

Drowning kid + underwater skeleton meme: Kid being played with: Chrome / Safari Kid drowning: Edge (only sometimes though) Underwater skeleton: Firefox

Scientific chart of browser extension store review times

22.05.2025 22:09 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@soitis.dev is following 20 prominent accounts