alyssaxuu / screenity

The free and privacy-friendly screen recorder with no limits 🎥
https://screenity.io
GNU General Public License v3.0
11.85k stars 914 forks source link

Work with extension in fullscreen video tags #225

Open MaksymOsovitnii opened 6 months ago

MaksymOsovitnii commented 6 months ago

I'm trying to use extension and find a way to use it when

  1. YouTube video is opened in a fullscreen mode (works perfect: https://share.cleanshot.com/lHR1hBCk)
  2. Vimeo and Mux video is opened in a fullscreen mode (works partially, as only my video is visible, but toolbar and drawings are not: https://share.cleanshot.com/Wxcjs5pP )

Can someone help or guide me with this issue? I tried to work with DOM nodes and chnage z-index, absolute position and so on. But it doesn't help.

alyssaxuu commented 6 months ago

It looks like Youtube handles fullscreen differently than Vimeo / Mux. I believe Youtube makes the whole page fullscreen, and just makes the player take up the full size, so it is possible for other elements like the toolbar and annotations to be positioned on top of it (Screenity is set to the max z-index value to account for that). On Mux I've noticed that they make a specific div fullscreen, which also happens to be a shadow DOM. This means that no other element in the page can be visible, regardless of z-index. The only way the Screenity UI could be visible here is if it could be injected inside the fullscreen element, but it is not possible as far as I know with the shadow DOM.

Alternatively I could look into listening for the fullscreen event in websites and changing it so it applies to the whole document as opposed to a div, but it's likely going to break the intended functionality. I don't think there's a solution for this as a Chrome Extension unfortunately :( That said, I do have plans for making a native version of Screenity which would likely solve this problem.

MaksymOsovitnii commented 5 months ago

@alyssaxuu , thank you. What tech stack do you plan to use for native version? If you are about desktop apps, have you thought about wrapping screenity with Electron? If yes, I can help to port it.