DTV - DRM付き動画の再生
駄文が見つかりました。初稿:2011年1月21日
おもな内容:
- DRMの問題と解除の要件
- 仮想OSによるDRM解除環境構築の簡単な手順
- DRM解除と録画(キャプチャ)の違い
重要:2011年10月2日、どうやらMicrosoftはWindowsMediaPlayerのセキュリティコンポーネント更新時に作成されるIndivBox.keyを地雷バージョンへと変更したもよう。IndivBox.keyはDRM解除というよりもDRMコンテンツ再生におけるキーアイテムであり、これは新規にDRM解除環境構築を行うのは事実上不可能となったことを意味する。つまりこのページの存在意義も消えたわけ(ピュア。8015対応のツールが出るまでは、すでに環境のある人は死守すべし。俺はVPCで環境構築したから、環境イメージのVHDファイルをきっちりバックアップしてある。
基礎知識
DRMはDigital Right Managementの略。日本語にするならデジタルデータ著作権管理機能、とでもなるか。単純に吸出しを制御するようなコピープロテクトとは似て非なるもので、権利者の好みに応じてきめ細かな制限を設定することが可能なものをそう呼ぶんだと思う。具体的には視聴可能期間とか。んまあ実装例はほぼWindows Mediaのそれと考えてよい。
何が問題なのか
断っておくと、俺は別にDRMそのものを否定する立場ではないし、抜ける作品に対価を支払うのは当然と思ってる。問題は再生がWindows Media Playerに限られることだけで、中の人は他のプレイヤーを触ったことがないとしか思えないほどWMPの使い勝手は悪い。特にシークの悪さ~たぶん可変フレームレートのせいでもあるんだろう~は群を抜いている。JRA-VANのレース動画程度であればまだしも、抜きどころをGOMのブックマーク機能できっちりがっちり管理している俺としてはピンポイントでシークできない状況がどうにも我慢ならないのだ。それが1本2本ならともかく数百本となるとねえ・・・。
そんなわけで、DRMを解除し他のプレイヤーで再生できるようにしてみる。
手法についての考察
WMファイルにDRMが付加されて以来、法的にどうなのというのはともかく、様々な解除ツールが公開されてきた。職人恐るべし。解除環境について大きく分けると直接ツールを使う方法と別環境を用意して間接的に行う方法があり、前者は利便性は高いもののWindows Media Playerのバージョンが制限され、後者は環境構築の手間はかかるもののメイン環境は最新≒任意の状態に保てる、といった違いがある。メイン環境がすでに最新の状態になっていてロールバックでも戻せないようなケース(うち)では選択肢は限りなく後者しかない。んまあ、解除済みファイルを誰かにもらうって手はあるんだろうが普通に犯罪なので。
なお基本的にどの方法でもちゃんとライセンスを取得する必要がある。どこぞから落としたDRM付きファイルをタダでどうこうする、というわけにはいかないので、念のため。また重要なのはIndivBox.keyのバージョン(\Documents and Settings\All Users\DRMにある)。こいつが11.0.6001.8015だとどのツールでも解除不可能なので注意しる。つまりこのファイルのバージョンを11.0.6001.8015にしないための環境構築、ということ。
いうまでもないのだが、この手の作業をする前には隠しファイルや保護ファイルの非表示を解除しておくこと。
仮想環境でFairUse4WMを使う
そんなわけで、DRM解除のためだけにメイン環境をクリーンインストールし直してなおかつWMP関連のアップデートを一切行わない、というのに抵抗のある俺としては、仮想環境利用を選ぶことにした。ほとんどDRMスレのテンプレそのままだが、実際これが一番確実のようだ。大まかな手順としては次の通り。
- VirtualPC 2007のインストール
- 仮想環境へのXP Professionalインストール
- WMP10のインストール
- FairUse4WMでDRM解除
既存環境を維持しつつWMP10に戻す≒IndivBox,keyを11.0.6001.8015以前の状態にする場合、ロールバックが不可であればコントロールパネルからWindows Media Player 11とWindows Media Format Runtime11を削除したのち、あらかじめセーフモードでwmploc.dllとwmvcore.dllをsystem32に放りこんでから(旧バージョンで上書きしてから)WMP10をインストールする必要がある。その他は仮想環境の手順とだいたい同じ(WMP10インストール前にDRMフォルダは消しとく)。いちおうこっちも試したけど、やっぱり仮想環境を構築したほうが何かと都合がよいと思う(再生エラーとかあった場合、環境変えて比較検証とかできるしね)。
短所を挙げるとすれば、低スペックなマシンだと仮想環境を動かすのが難しいかもしれないことか。同一マシンでの処理にこだわらないのであれば、空きPCに手順2以降でももちろん構わない。その場合の短所は消費電力が増え電気代がかさむことか。
なおうちのメイン環境はXP 32bitである。7を使ってる人はVirtual PC 2007の替りにWindows Virtual PCでいけるのかもしれないが7環境がないので俺には検証できない(仮想OSはXPで)。
VirtualPC 2007のインストール
仮想OS環境を構築するツールはけっこうあるけれども、WindowsベースでWindows仮想化を最も手軽に行えるのは恐らくVirtualPCではないかと。もとはコネクティクスが開発したものだけどお得意の買収で現在はMSが提供中。導入の際にはUXGA以上の解像度の高いモニタがあるとよい。
インストールで迷うことはあまりないと思われるが、メモリは手動で512MBくらい割り当ててやったほうがよいかもしれない(どうせDRM解除くらいしか使わないだろうからそれ以上はあっても無意味)。HDD容量も10GBもあれば十分当初は10GBもあれば問題ないと思っていたのだが、処理する対象の量次第ってことで。2GB前後のファイルを連続して処理すると30GBくらいはみておいたほうが無難か。まあ、容量可変設定もできるので不安ならそうしたほうがよい。ただし仮想環境のあるHDDそのものの空き容量を常に気をつける必要はある。
・・・もちろん怪しいファイルの取り扱いといった仮想環境本来の使い方をしても構わないが、複数スタンバイできるんだからそれは解除環境とは別に構築したほうがよいだろうな。
またパフォーマンス設定でバックグラウンド時の処理優先度をホストOSにしておくことをおすすめする。じゃないとけっこうもっさりするので。
ちなみに環境構築後のVHDファイルを残しておけば、ホストマシンを切り替えてもDRM解除環境の保持がわりと楽な気がする。んまあハードウェア構成が変更されれば多少は面倒があるかもしれんが。
なお今回俺はデフォルトのまま進めたけど、インストール先をシステムドライブではなく別のHDDにしたほうが何かとよいかもしれんね。それこそUSBメモリとかさ。
仮想環境へのXP Professionalインストール
仮想マシンの追加が完了したら、そこにOSをインストールする(Homeでもよいのかもしれないが、俺の手元にはProfessional+SP2しかないので)。なおVirtualPCのみならずOSとなる英語版XPのVHDファイルもMS自身から提供されているので、これを利用した手法を紹介しているサイトもいろいろ見かけたのだけれども、俺の環境ではローカライズ・・・日本語化がどうもうまくいかなかった(IEで日本語サイトにアクセスしても言語パックのインストールダイアログが出ない)。提供元を明示しておくので、興味のある人はそっちを試してみれ。なおログイン時にパスワードを求められる。ReadMe.txtに書いてあるが、執筆時点ではPassword1。
Internet Explorer Application Compatibility VPC Image
XPメディアの入手方法はおのおの工夫しる。ホストOSの光学ドライブをそのまま利用してCD/DVDでインストールしてもよいが、仮想マシンのメニューで[CD]→[ISOイメージのキャプチャ]でISOイメージをマウントしブートに使えるのはいろんな意味でアレだ。ちなみに仮想マシンのメニュー部分のスクリーンショットを撮るのは無理っぽいので画面付き解説は諦めた。
OSのインストールが済んだら環境設定。ホストOSとのファイルのやり取りはネットワーク経由でも可能なのだが、ファイル共有を設定することでホストOSの任意のフォルダをネットワークドライブとして扱えるようになり、こちらのほうが利便性は高いと思われ(DRM解除したファイルの出力先をここで設定したネットワークドライブにするのがいろんな意味で賢いやり方かと)。ただしファイル共有を有効にするにはバーチャルマシンの追加機能をインストールする必要がある。ウインドウ左上の[操作]メニューに[バーチャルマシンの追加機能のインストール/更新]という項目があるのでこれを選択。ちょっとしたタイムラグののち、インストール開始。再起動ののち、画面左下ステータスバーのフォルダアイコンを右クリックでフォルダ共有を利用できるようになる。
大事なことを忘れていた。DRMの最新バージョンを勝手に更新されないよう、Automatic Updateは無効にしておくこと。もしくはWMDRM対応MediaPlayer用の更新プログラム(KB891122)をインストールしないようMicrosoft Updateで設定しておくとか。
WMP10のインストール
OSインストール直後はWMP9な状態だが、なぜか俺の環境ではFairUse4WMがエラーになったので、WMP10を入れる。その前にあらかじめ\Documents and Settings\All Users\DRMフォルダがあれば削除しておくこと。
Windows Media Player 10 32bit B鯖ミラー
WMP10のインストールが完了したらセキュリティコンポーネットのアップグレード(これをやらないとIndivBox.keyが生成されないっぽい)ののち、解除対象のファイルをWMPで再生しライセンスを取得する。もちろん再生~ライセンス取得~するのはゲストOS側な。以上で準備は整った。
なおこの状態でのIndivBox.keyのバージョンは11.0.5497.6285。こいつを死守すべし。
マイドキュメントにblackbox-keys.txtがある場合、FairUse4WMで復元キー取得前に削除しておく。
FairUse4WMでDRM解除
解除ツールにはAutomate unDRMや見裸鍵、drmdbg、FairUse4WMなどがあるが、それぞれOSやMediaPlayer、IndivBox.keyのバージョンによって使えるケース使えないケースがあるっぽい(くどいようだがIndivBox.keyが11.0.6001.8015は解除不可能)。今回の手順ではFairUse4WMが使える。必要なのはFairUse4WM 1.3fix-2。日本語化パッチも提供されてる。消えると嫌なのでコピーしておいた。
最初に復元キーを取得する。「復元キー」ボタンをクリックすると勝手にDRMフォルダ内を漁ってくれるようだ。
ここまできたらもう安心。
復元キー取得後のblackbox-keys.txtは絶対削除してはいけない。
その後、解除対象のファイルを放り込む。エンコードと違いたいして時間は掛からないのでまとめていっぱい処理しても問題ないっぽい。
なお解除作業中、メイン環境でエンコードなどを行っても特にマシンが固まるようなことはなかったのだが、ファイルの移動など、I/O関連はちょっと重くなった(特にゲストOS側)。
フォルダ共有で設定したネットワークドライブ内のファイルも普通に扱えるので、そこにサブフォルダでも作って出力先にしてやると後が楽だろう。注意点は、先にゲストOS側で再生してライセンスを取得しておくこと。ネットワーク越しの再生を禁止している場合はゲストOSにファイルをコピーして再生しライセンスを取得することで、ネットワークドライブのファイルでも解除可能になる。なお同一コンテンツホルダのものであればひとつでも再生してやればよいケースと、ファイルごとにライセンス取得が必要なケースがある。たとえばGIGAはひとつだけ再生してやればよかったのだが、DUGAやAVチャンネルは個々に取得しないといけない、みたいな感じ。そのへんはケースバイケースで。JRA-VANレーシングビュアの動画も、俺はホストOSのTargetJV経由でいつも見てるんだけど、ホストOS側でURLだけ拾って、ダウンロードはゲストOS側でやらないとちゃんと解除されない。
うっかり忘れがちになるので繰り返すが、ライセンス取得は必ず解除環境側で行うこと。GIGAを例にとるとダウンロード動画はサイト上で購入→ライセンス取得という流れなので、ついホストOS側のお気に入りからアクセスしてそこから落としたファイルをゲストOSにコピーしても再生の時点でエラーになったりするので、仮想環境側にも配信サイトのブックマークやgetasfのインストールをしておくべきだろう(ちなみに月額見放題動画はホスト側で落としたものをコピーでも問題なかった)。
なおゲストOS側で再生しようとすると次のようなエラーが表示される場合がある。
DirectShow フィルタ グラフに存在しないピンに操作を実行しようとしました。
平たく言えば解釈できないFourCCですよ、と。実はWindowsMediaVideo9には3つのバージョンが存在する。例えばWMP10でこのエラーが出た場合、WM11系のWVC1コーデックが不足しているわけ。
ちなみにライセンス取得に成功していれば、再生できなくてもDRM解除自体は可能。
異なるマシンで再生したDRM付きファイル
メイン環境でダウンロードしたDMMのWMVファイルを解除しようとしたのだけれども、ファイルをゲストOSにコピーしただけでは正しく再生できなかった(ライセンス認証そのものができなかった)。そこでゲストOSのDRMフォルダをいったん退避し、IndivBox.keyを除いたメイン環境のDRMフォルダの各ファイルをコピーしてみると再度認証画面が表示され、ID&パスワードを入力したら再生できるようになった。この状態でFairUse4WMを通すと無事解除できた。解除後、念のためDRMフォルダは元の状態に戻しておく。んまあ再生期限が切れてたらダメだろうしどの環境でも通用するかどうかはわからないが、参考まで。
視聴期限の切れたファイルの再生に成功したという話を時折目にするが、配信サイト側がライセンスキーを期限後も垂れ流しにしているケースや期限内にすでに視聴しライセンスキーの取得が済んでいるケースなど、未視聴ファイルの純粋なDRM解除とは言い難い。というか、期限付きファイルをほったらかしにしとくな、と。
雑感
一度解除に成功してしまえばあとはもう楽ちんだ。ファイル単位で認証が必要なケースはともかく、エンコードのように都度細かく設定する必要もないのでガンガン処理できる。100タイトル以上あったGIGA作品も1時間くらい放置してたらもう終わってた。これは楽でよい。
んまあそのうちバージョン8015以降じゃないと再生できないコンテンツも登場するんだろうが(すでに存在するわけだが、配信側の追加コストが確実なので新規とか運営母体の大きいところじゃないと難しいだろ)、そしたらまた誰かが解除方法を編み出してくれるのを待てばいいや。ライセンスフリーが主流になる日は、少なくとも日本では遠いだろうし。
GIGA補足
2012年1月現在、月額見放題ムービーの配信URLには規則性があり、また会員になっていなくてもダウンロードは可能である。ただ視聴=DRM解除を行うには少なくとも一度課金してライセンス取得を行っている必要がある。ライセンス取得が済んでいれば=一度でも再生に成功していれば、課金期間を過ぎても解除可能。これはZENやZEUSでも有効だったりする。
まあこれ書いちゃうと中の人が対策しちゃうかもしれないので、いつまで通用するかはわからん。
似て非なるもの
DRM付き動画の保存を謳っているツールにMPXやムービーグラバー、Tunebiteといったものがある。これらをDRM解除ツールとして紹介しているページをよく見かけるが、やってるのは解除ではなく再保存なので録画ツールと呼んだほうが正しい。両者の違いを言及しないページはあまり信用しないことにしている(ちなみに録画のほうが解除よりは違法性が少ないと思われ)。んでMPXレコーダーにしてもムービーグラバーにしても「元動画よりも高画質で録画できる」といったコピーの時点でうさんくささバクハツなので俺は使ったことないけれども、ちゃんと保存できるにしても「再生できること」が前提なのはたぶん変わらないと思われ。つかDRM解除可能なコンテンツを再保存するのは正直バカげてるし音ズレの不安もあるしどれも高すぎる。そして宣伝サイトがことごとく「読むだけでイイ女を口説ける決定版!」みたいなのと同じ作りなのも嫌だ(ピュア。
でもそういう作りを嫌がるのではなく「俺ならもっとうまい魅せ方ができるぜ!」と思えないから俺はうだつが上がらないままなのだな。
そんなこたぁどうでもいい。地雷バージョンのIndivBox.keyでないと視聴できないコンテンツをどうしても保存したい!したいの!という場合には候補に加えてもよいかもしれないがまあ、お値段的に、俺ならDVDなりを借りる&買うけど。配信以外に選択肢がないようなコンテンツが獲物の人は、どうぞ人柱になって報告してください。俺はJRA-VANとAVだけでおなかいっぱい。
あとはM4P→M4AをNoteBurnerとか使わずにフリーで手っ取り早くやる方法を思案中。Requiemはまだ使えるんかな。
メモ
2011年7月よりDMMがSilverlightによる月額見放題を開始、まずはGASで落とせるか試してる途中。