3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

設置したvideoタグの動画のダウンロードを妨げる方法

Posted at

はじめに

今回はフロントエンド側の操作でvideoタグの動画のダウンロードを困難にする方法を紹介します。
「禁止する方法」ではなく「妨げる方法」としたのは、フロントエンドの実装だけで動画のダウンロードを禁止するのは不可能だからです。
完全に禁止したい場合は、サーバーサイドで動画へのアクセス制限を行ったり、HLS形式で配信する必要があります。

今回はあくまでフロントエンドの実装でユーザーの動画ダウンロードを簡単にはさせない方法を紹介します。

対象

  • 作成したページ内にvideoタグを利用した動画が存在し、ダウンロードをさせたくない場合
  • フロントエンド側で動画のダウンロードを禁止したい場合

動画のダウンロードを妨げる方法

videoタグの属性指定

まずは、特定のブラウザで表示させるダウンロードボタンを非表示にする方法です。
特定のブラウザでは以下のようにご親切にダウンロードボタンが表示されます。

スクリーンショット 2023-06-03 11.42.57.png

これを禁止するには、videoタグに以下のような属性の指定をします。

<video controlsList="nodownload"></video>

上記の指定でダウンロードボタンは表示されなくなります。

JavaScriptでの右クリック禁止

次に、以下のように動画を右クリックでコンテキストメニューを表示させて動画を保存するのを禁止する方法です。
以下のように動画を右クリックすると動画を保存するメニュー選択肢が表示されます。

スクリーンショット 2023-06-03 11.46.14.png

videoタグの属性指定

先ほどと同じようにvideoタグの属性指定で右クリックを禁止します。

<video oncontextmenu="return false;"></video>

JavaScriptでのcontextmenuのイベント禁止

上記と同様の内容ですが、scriptでvideoタグへのcontextmenuイベントを禁止する方法もあります。

<video id="video1"></video>

<script>
document.getElementById('video1').addEventListener('contextmenu', function(e) {
     e.preventDefault();
});
</script>

加えて、右クリックを検知して他のメソッドを呼び出したい場合はこちらを利用してもいいと思います。

CSSでクリック禁止

最後はあまりお勧めしませんが、videoタグへのクリックを禁止して右クリックを反応させない方法です。

video {
    pointer-events: none;
}

これで右クリックは禁止出来ますが、左クリックも禁止するのでvideoタグをクリックして動画操作することが出来なくなります。
なので動画のコントローラーを外部に自作している場合に有効な方法になります。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?