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.That can be configured to run automatically on every site, and it uses the MutationObserver API to automatically fix any newly added/modified <video> elements on the page. Seems to work on Snapchat and Instagram so far, but breaks some functionality. Op's chrome extension, with bespoke support for Instagram, likely offers a much better experience. This is just more universal.
I really wish there were a middle ground, like an external extension manager where you could opt into updates, with reproducible builds, changelogs, etc.
[1] https://chromewebstore.google.com/detail/chrome-extension-so...
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.
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...
https://www.youtube.com/shorts/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?
https://libredirect.github.io/
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/digitalblossom/alternative-frontends
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.
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.
I've never done a Firefox extension before but I could definitely give it a go.
https://chromewebstore.google.com/detail/video-scrubber-for-...
https://addons.mozilla.org/en-US/firefox/addon/video-scrubbe...
https://chromewebstore.google.com/detail/video-controls-for-...
https://microsoftedge.microsoft.com/addons/detail/video-cont...
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.
My heart bleeds for them.
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/
For a project like this, I would strongly recommend an MIT license. That will essentially allow people to use the code and modify it, contribute back to it, and otherwise distribute their changes.