Edited at

動画をダウンロードしづらくする方法(HTML5 videoタグを使って)

More than 1 year has passed since last update.


前提


  • HTML5のvideoタグで動画を閲覧できるようにした上で、閲覧したユーザーがローカルへ動画をダウンロードすることを難しくしたい。

  • HLSやRTMPといったストリーミングプロトコルを使わずに、sourceタグにmp4動画のURLを指定する形を想定。

  • ある程度の知識と動機のあるユーザーでなければダウンロードしないよね、ぐらいのレベルでOK。

  • サーバーはrailsで構築されている。


  • http://ja.stackoverflow.com/questions/30927 で質問しているので、良い方法があればぜひ教えてください。


方法

今のところ、以下のような方法を考えついた。


  • JavaScriptで動的にsourceタグを設定し、JavaScriptが無効化された状態での動画閲覧を制限する。その上で、JavaScriptでコンテクストメニューを無効化する。(コンテクストメニューにダウンロードオプションが表示されるため。)
    念のため、コンテクストメニューの無効化というのは、jQueryの以下のコードで実現されるもののこと。
    $('video').contextmenu(function() {
    return false;
    });



  • リファラを動画閲覧ページのURLのみに制限する。


  • URLにトークンを付与し、有効期限を設定する。(一度限りのトークンを設定しようと考えたが、chromeなどのブラウザはリクエストにRangeヘッダーを付けて複数回リクエストを送るようになっており、断念><。)


  • sourceタグ内の動画URLにどのような文字列が入るのかわかりづらくするため、ソースコードを難読化する。(chromeのデベロッパーツールなどを見れば動画のURLが出てくるので、あまり意味がないかも。)


他にもダウンロードのハードルを上げるような方法があれば、教えてください><