PiP not always appearing
on some websites when I play the video I get no icon to open the PiP function.
Is there a reason? Or at least a different way to activate the PiP in a given page?
It works in Brave, so it's not a problem of their website or the player
It's hard to say without seeing live examples. Perhaps the website is using the disablePictureInPicture video attribute (= disabling it on purpose)?
You might try running this code in the console, and see if it allows you to enable PiP:
@mmmmm0fffffffff Brave - like Firefox - forces PIP even on websites blocking it, you can either add a filter to uBO or use an extension like this one
only drawback is that on Vivaldi its keyboard shortcut does not work, for the rest it works as expected, you will get PIP everywhere
The last few days I started using Vivaldi a lot as my "media" browser and this has annoyed me a lot. And I'm happy I am not the only one seeing this issue. Here are my findings.
The problem seems to be 2 fold.
(1) Invisible because of being positioned off-screen
Because of the positioning (top, center, close to the edge) it sometimes happens that on badly positioned video elements (which are larger than the viewport, happens on Netflix often) the PiP button is displayed "off screen" and therefore not visible.
This could be fixed by choosing a different position, e.g. lower right side like FF.
(2) Not rendered at all
The Vivaldi PiP button seems to be normally loaded like an extension into the screen (when it is loaded) as a
<div>with a Shadowdom as last element inside
But sometimes it is simply not loaded into the DOM.
And I have no explanation for it yet. On the same window (in my case Netflix) it is sometimes loaded, and on reload it simply isn't.
Vivaldi 5.5.2805.44 (Stable channel) stable (64-bit)
User Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/18.104.22.168 Safari/537.36
Command Line /usr/bin/vivaldi-stable --enable-crashpad --flag-switches-begin --flag-switches-end --desktop-startup-id=gnome-shell/Vivaldi/5067-1-*** --save-page-as-mhtml
Executable Path /opt/vivaldi/vivaldi
Profile Path /home/***/.config/vivaldi/Default
@pafflick I was now able to reproduce both cases on Netflix.
(Case 1) Working (rendered) PiP on Netflix (but sometimes hidden)
If you enter a video stream via
Home > Select a video > Playthe PiP button is loaded (but sometimes hidden, because of the badly positioned video element; Netflix' fault;)
(Case 2) Missing (not rendered) PiP on Netflix
If you F5 / reload a video stream window the PiP button is not rendered / loaded into the DOM - ever.
If fixing the existing Vivaldi PiP is too complicated the following extension might be used as a replacement / basis for a rewrite: https://chrome.google.com/webstore/detail/picture-in-picture-pip-vi/eaeedemddlledlghhjebjgdmhjekgegd
I reviewed its source and while it is very concise, focusing on providing a generic approach it is also very well structured and written.