6 ms·
Show HN: A Chrome extension to give you back control over short-form videos
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/ https://github.com/darajava/seek-anywhere/
- 4jck 2y agois there a way to "save" a volume for instagram/youtube? i swear their volume is boosted to 200% volume
- darajava 2y agoJust finished that feature. Volume saving is available now on youtube and insta if you update.
- uptown 2y agoAn answer to my wishes ... https://news.ycombinator.com/item?id=43398696 https://news.ycombinator.com/item?id=43398696 thank you!
- darajava 2y agoYou're welcome! I knew I couldn't be the only one.
- joshdavham 2y agoThanks for sharing! Also, would you mind adding a license to your gh repo?
- darajava 2y agoNo problem. Yes, I never thought of that! What is the practical benefit of having a license here and which one should I choose?
- Jitnaught_ 2y agoWithout a license your repo is technically not open-source, only source-available. A license says what people are allowed to do with the code, so if you don't add a license, they're not allowed to do anything.
- darajava 2y agoThat's great, I've added an MIT license. https://github.com/darajava/reel-control/commit/4d014f578b935e4267da727b483c8762f65f0ced https://github.com/darajava/reel-control/commit/4d014f578b93...
- captn3m0 2y agoHaving a license clarifies what permissions are you giving to someone who downloads your code. The practical benefit is that others can clearly contribute back or build on your work without any legal concerns. Something like MIT gives them permission to do anything as long as attribution is maintained, while avoiding liabilities. But there are others you can pick: https://choosealicense.com/ https://choosealicense.com/
- darajava 2y agoThank you! MIT license added. https://github.com/darajava/reel-control/commit/4d014f578b935e4267da727b483c8762f65f0ced https://github.com/darajava/reel-control/commit/4d014f578b93...
- 2y ago
- robgibbons 2y agoThanks for this. I've thought about building this exact thing ever since this vicious trend began.
- darajava 2y agoMy pleasure! It was fun to build and didn't take too much time to do the individual platforms. So, if it breaks for one then patching it up should be pretty quick. Please leave a review if it's helpful to you.
- xnx 2y agoNice. Does this do more than the "Show Video Controls by Default" extension? https://chromewebstore.google.com/detail/show-video-controls-by-de/ngnnpfgkhpmcofcobdobhjnjmoglkhhe?hl=en https://chromewebstore.google.com/detail/show-video-controls...
- darajava 2y agoYeah - that extension seems to just update <video> elements to have the showcontrols attribute if they're missing. Doing that isn't enough for insta, youtube etc because you need to mess with their propriatary html.
- omoikane 2y agoFor youtube shorts, replacing the "shorts" in URL with "watch" will give you the usual interface, for example: https://www.youtube.com/shorts/GqkmtcirwYA https://www.youtube.com/shorts/GqkmtcirwYA -> https://www.youtube.com/watch/GqkmtcirwYA https://www.youtube.com/watch/GqkmtcirwYA But actually I see that seek bar is already available in youtube shorts. Maybe it's a recent change?
- darajava 2y agoYouTube shorts does have its own progress bar, but it's proprietary and kept out of view and so it doesn't allow the user to tell the length of the video at a glance.
- Sohcahtoa82 2y agoI've noticed the seek bar is available in MOST but not ALL shorts. I always thought it might be an option by the video owner.
- darajava 2y agoI'd say it's more likely youtube A/B testing to see if they can increase engagement with that bar disabled.
- cma 2y agoTiktok used to do it based on length, is it something like that? I've noticed having it on desktop more often than mobile on YouTube shorts, maybe never on mobile browsers.
- ensignavenger 2y agoThanks for releasing it! Whats the chance of this getting shipped to Firefox users? A future improvement might be to add the ability to change the playback speed :)
- darajava 2y agoNice idea. Playback rate should be pretty easy to implement! I've never done a Firefox extension before but I could definitely give it a go.
- megadata 2y agoAnd perhaps allow 3x playback speed. It's too fast for me to understand speech on most videos but not all. But some videos are so long winded that it can be tremendously helpful.
- darajava 2y agoYou actually can control playback speed! You can find this on the bottom right of the videos. It doesn't go to 3x though and you can't access it on youtube unless it's in fullscreen for some reason. Will try to figure that out.
- mthoms 2y agoFor anyone looking: Safari has "Stop The Madness" which has something similar (and much more).
- Aissen 2y agoI wrote a set of uBo rules to do the same on TikTok. Not sure if they still work, but might as well publish it: tiktok.com##sharing-main-video-el:watch-attr(controlslist):remove-attr(controlslist) It seems a bit flakey on mobile, but it was a nice addition to the other enhancements. I haven't been able to make the mobile web as useful as the desktop web version, but didn't want to spend too much time on it either.
- devmtk 2y agoThank you for that. Helps a lot!
- darajava 2y agoMy pleasure.
- 65 2y agoInstant download. Works great. Perhaps on Instagram you can make it save the audio level when the video is muted? If I mute a video then scroll to the next one, the audio still plays. Otherwise, thanks for making this, it's something I've wanted for a long time.
- darajava 2y agoOh nice catch, I'll get onto that asap. Edit: This will be fixed in the next update.
- umvi 2y agoAdding a progress bar back might cause people to just skip to the part they want to see instead of watching the whole thing again though, and I'm worried that might not be in the best interests of the content creator or advertisers.
- cyberax 2y ago> I'm worried that might not be in the best interests of the content creator or advertisers. My heart bleeds for them.
- ackfoobar 2y agoIn other words, this remove slop creators' ability to waste a minute of my life with bait. How is that not a good thing?
- TeMPOraL 2y agoBut think of the economy!
- Zak 2y agoThat looks pretty useful. A Firefox release would be most appreciated.
- darajava 2y agoWorking on it, I have a lot on atm but I'll reply to comments in this thread requesting FF once I have it out.
- varenc 2y agoI 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.
- darajava 2y agoAh that's a good idea! Similar effect to this but I guess packaging it in a chrome extension lends itself to "set it and forget it". I also have some customization options.
- xeromal 2y agoI've tried to send bookmarklets to my family and they never "get" them. An extension like this is perfect. Thanks for your work!
- rendaw 2y agoIt's also a security risk though, as in someone could take it over and push a bad update at any time... I have a few extensions installed but I'm terrified of adding more, even though there are parts of my browsing experience that could be significantly improved. I really wish there were a middle ground, like an external extension manager where you could opt into updates, with reproducible builds, changelogs, etc.
- darajava 2y agoYou could add it from source which is pretty easy to do but you lose chrome’s syncing feature. Having said that I haven’t developed a chrome extension in years. They are so strict now. I know they can’t manually inspect each line but I do hope it helps solve the problem of extensions going rogue.
- haberdasher 2y agoI've made these for TikTok/Instagram: https://chromewebstore.google.com/detail/video-scrubber-for-instag/apondjajmejlodhkaenofcicoiiekghf https://chromewebstore.google.com/detail/video-scrubber-for-... https://addons.mozilla.org/en-US/firefox/addon/video-scrubber-for-instagram/ https://addons.mozilla.org/en-US/firefox/addon/video-scrubbe... https://chromewebstore.google.com/detail/video-controls-for-tiktok/epmobcfgbmjijkhpimkmjhelcjkdfcoj https://chromewebstore.google.com/detail/video-controls-for-... https://microsoftedge.microsoft.com/addons/detail/video-controls-for-tiktok/ebdnngofmgnaionkomakdfobijebolcn https://microsoftedge.microsoft.com/addons/detail/video-cont...
- megadata 2y agoI haven't tried this out but if it works it's one the biggest bang for the buck I've seen on HN. Thanks!
- ranger_danger 2y agoBeen using this extension to turn shorts back into regular videos for years: https://github.com/raven0230/Remove-Youtube-Shorts https://github.com/raven0230/Remove-Youtube-Shorts That way not only do you get the seek/pause controls back, but other stuff like volume, comments, keyboard shortcuts etc. now work as usual too.
- NelsonMinar 2y agoIt's horrible that the web has come to this, a need for a browser hack to restore the UI that some website hacked off.
- ryandrake 2y agoAt least users can [for now] do this on the web! Try fixing poor UI on a locked-down native mobile app.
- montag 2y agoProduct designers are going to experiment...Vote with your feet. Don't use horrible products. The only thing worse would be EU mandated progress bars
- mrgoldenbrown 2y agoI would love to vote with my feet. How do I watch YouTube or Instagram content with VLC, or some other user friendly video player?
- aspenmayer 2y agoLook into LibRedirect and the projects it uses and also things like youtube-dl/yt-dlp. https://libredirect.github.io/ https://libredirect.github.io/ https://libredirect.codeberg.page/ https://libredirect.codeberg.page/ > A web extension that redirects YouTube, Instagram, Reddit, TikTok and other websites to alternative privacy-friendly frontends. https://github.com/mendel5/alternative-front-ends https://github.com/mendel5/alternative-front-ends https://github.com/digitalblossom/alternative-frontends https://github.com/digitalblossom/alternative-frontends https://www.privacyguides.org/en/frontends/ https://www.privacyguides.org/en/frontends/ https://news.ycombinator.com/item?id=36146076 https://news.ycombinator.com/item?id=36146076
- jraph 2y agompv understands URLs to these websites and uses yt-dlp to download them. On KDE, I assigned an action to open some URLs with mpv, which means I can play then from the clipboard manager or the copy menu that is displayed when copying if it's enabled.
- emillykkeg 2y agoThis is a cool idea. Good job!
- neves 2y agoThe worst thing is that you don't know if a video is 15 seconds or 3 minutes. This is great. Thank you!