videoタグ内の動画のダウンロードを難しくしたい


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

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

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

[code]

    $('video').contextmenu(function() {
      return false;
    });
    
[/code]

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

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

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

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




`URLにトークンを付与し、有効期限を設定する` が一般的だとは思います。

video要素を利用してMP4を再生可能とする以上、根本的にダウンロードを不可能にすることはできませんが、パッと思いつくものとして

  * トークン発行のseedにUser-Agentを含め、検証時に同一User-Agentのみ許可する 
    * curl/wget などによるダウンロードを制限できます

などが挙げられます。が、いずれも悪足掻きレベルと言えます。

