←back to thread

128 points darajava | 2 comments | | HN request time: 0.018s | source

Hi HN! I built this little extension to prevent, in my opinion, the most offensive anti-pattern used by tech companies. That is removing the seek bar in short-form videos.

The "seek bar" is the bar at the bottom of a video that progresses as you play the video, and that you can click on or drag to skip around. Why companies ever thought it was a good idea to get rid of this I don't know, but I find it infuriating, so I decided to add it back for myself and thought others might like it too.

ReelControl adds a progress bar and seeking capabilities to videos on Instagram, YouTube Shorts, and Facebook Reels.

I do sometimes enjoy watching short-form content and I've found that with this extension enabled I can be more mindful about it and get sucked in way less. I'm also on my phone less because I tend to favor the web versions of these platforms now.

Open source--PRs and issues welcome! https://github.com/darajava/seek-anywhere/

Show context
varenc ◴[] No.43561092[source]
I have a simple bookmarklet does does something similar:

    javascript:(function(){document.querySelectorAll("video").forEach(((e,o)=>{console.log(`VideoFixer: Processing <video> #${o+1}:`,e),e.style.position="relative",e.style.zIndex="999999",e.controls=!0,e.style.pointerEvents="auto";const t=[],i=[];["disablePictureInPicture","disableRemotePlayback"].forEach((o=>{e.hasAttribute(o)&&(t.push(o),e.removeAttribute(o))})),e.hasAttribute("controlsList")&&(i.push(...e.getAttribute("controlsList").split(/\\s+/)),e.removeAttribute("controlsList")),t.length&&console.log(`VideoFixer: Removed attributes: ${t.join(", ")}`),i.length&&console.log(`VideoFixer: Removed controlsList restrictions: ${i.join(", ")}`),t.length||i.length||console.log("VideoFixer: No restrictions found to remove.")})),console.log("VideoFixer: All videos processed.");}());

It just re-enables all controls on all <video> elements and uses z-indexing to push them to the top. Works on instagram but needs to be re-ran for new video elements.
replies(3): >>43561925 #>>43566000 #>>43576676 #
coldtrait ◴[] No.43566000[source]
This is great. I just asked ChatGPT to convert it into a script that I could use with Violentmonkey.
replies(1): >>43576398 #
1. varenc ◴[] No.43576398[source]
Nice! I still use Greasemonkey and love it.

Relatedly, I have a greasemonkey script[1] that makes Snapchat on web much more usable. I just updated it to include this video fixer logic so now it's easy to scrobble videos and download them.

It uses the MutationObserver API to immediately 'fix' any <video> element added to the page. Really I should just copy you and make a version of it that just does the video fixing but runs on every site. It's crazy how browsers have a nice built in pro-user video element, but that every site intentionally overrides and degrades it...

edit: I went ahead and turned this into a greasemonkey script as well: https://greasyfork.org/en/scripts/531780-universal-video-fix...

[1] https://greasyfork.org/en/scripts/468156-unbreak-snapchat-we...

replies(1): >>43580425 #
2. coldtrait ◴[] No.43580425[source]
That's great. The one site I definitely need it on is instagram whenever I happen to open a reel on web. And I'd like it on reddit because its video player sucks, but it just adds it on top of it so I have now ended up disabling it everywhere else.