ピクチャーインピクチャーがすべての動画サイトでできて欲しい
#動画 の良いところは他の作業をしながら見られるところにあると思っている テキストメディアや #漫画 は集中してみることを要求する ので、ピクチャーインピクチャーをサポートしない動画サイトはそれだけで好感度が下がる
単にサポートしてないだけならブックマークレットでなんとかなることも多い
私はこの URL をブックマークしていつでも押せるようにしている
code:javascript
javascript:var v=document.querySelector('video');v.disablePictureInPicture=false;v.onenterpictureinpicture=null;v.addEventListener('enterpictureinpicture', e=>e.stopPropagation(), {capture: true});v.requestPictureInPicture();
たまに意図的にピクチャーインピクチャーを塞いでくるタイプのサービスがある
ニコニコ動画は enterpictureinpicture イベントを検知してわざわざピクチャーインピクチャーを閉じに来る挙動がある
単に disablePictureInPicture を設定するよりももっと強い制限
ニコニコ生放送だとできてニコニコ動画だとできる、だった気もする(うろ覚え)
これはサービス #設計 としてはある程度理解できる たぶん、ピクチャーインピクチャーはニコニコのコメントを流す機能と相性が良くない
なのでニコニコのコメント機能を大事にしたい立場からは切りたくなる気持ちはわかる(あくまで憶測だが)
が、私はニコニコのコメントを常に切って見るタイプのユーザーなので、おそらくサービスの思想とそもそも合ってない(想定ユーザーではない)と思われる
ニコニコ以外のサービスも、もしかすると動画広告などとの兼ね合いを考えて塞いでいる可能性はある
開発者ツールで <video> タグを検索し、 enterpictureinpicture のイベントハンドラーを切るボタンを押すと ↑ のブックマークレットが押せる
あるいはそういう Chrome 拡張を使う手もある(が、私は入れてない)
と思ったが、そんなことをしなくても capture フェーズで stopPropagation() をすれば良い
code:javascript
video.addEventListener('enterpictureinpicture', e => {
e.stopPropagation()
}, { capture: true })
知ってる範囲でサービス別の対応状況
ピクチャーインピクチャーが first class でサポートされているサイト
OPENREC.tv
YouTube
ブックマークレットを使えばピクチャーインピクチャーができるサイト
Vimeo
Amazon Prime Video
AbemaTV
ニコニコ生放送
ブックマークレットではできない作りをしてそうなサイト
ニコニコ動画/チャンネル
e.stopPropagation() すれば行けた
d アニメストア
window.open() で動画が開かれるのでブックマークバーからブックマークレットを起動することはできない
開発者ツールを起動してどうにかする感じになって労力が増える