前提
- 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が出てくるので、あまり意味がないかも。)
他にもダウンロードのハードルを上げるような方法があれば、教えてください><