HTML5のvideoタグで動画を閲覧できるようにした上で、閲覧したユーザーがローカルへ動画をダウンロードすることを難しくしたいと考えています。HLSやRTMPといったストリーミングプロトコルを使わずに、sourceタグにmp4動画のURLを指定する形を想定しています。
ある程度の知識と動機のあるユーザーでなければダウンロードしないよね、ぐらいのレベルでOKです。ちなみに、サーバーはrailsで構築されていますが、コードはどんな言語でもかまいません。

私の方では、以下のような方法を考え付きました。

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

$('video').contextmenu(function() {
  return false;
});
  • リファラを動画閲覧ページのURLのみに制限する。

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

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

他にダウンロードのハードルを上げるような方法はありますでしょうか。皆様のお知恵をお貸しください。