はじめに
PC版ニコ動において
実は一般会員でもプレミアム限定の機能を使えてしまうという話です。
もちろん普通に使ってたら無理なのですが、ちょっとした裏技とか強引に使う方法とかがあるということです。
プレミアム会員になると使える機能
- 好きな位置で再生
- 反転再生
- 指定した秒数だけ動画をスキップ
- 広告なし(Adblock導入すれば一般会員でも消せる)
これらの機能は理論上(?)一般会員でも使えます。
一般会員がプレミアム機能を使える理由
これが可能な理由は「プレミアム会員かどうかの判定とか制限はすべてブラウザ側で行われているから」です。
逆にサーバー側で制限する方法が思いつきません・・・。
動画プレイヤーはブラウザで読み込まれたJavaScriptで動作しているので、プレイヤーにかかる制限なども全部JavaScriptです。
これがわかれば、2通りの制限回避方法が思いつきます。
- ニコ動のプレイヤーを使わずに直接動画を再生する
- プレイヤーのJavaScriptを書き換えてプレミアム会員だと認識させる
「ニコニコ動画のプレイヤーが制限かけてるんだから、違うプレイヤーで再生すりゃいいじゃん!」っていうのと「制限されないようにプレイヤーのコード書き換えりゃいいじゃん!」っていうやつですね。
実際やってみた
本当にできるかどうか、両方とも試してみました。
まず1つ目の方法
動画のURLを探して直接アクセスするだけなのでかなり楽な方法。ただ、当然この方法ではニコニココメントは読み込まれないのでただの動画をみるだけになります。
これはChrome開発者ツール使えばすぐにできました→動画URLを探す手順
そして2つ目の方法
これはどうやってやるかというと、ニコ動のJavaScript読み込みをブロックして代わりに書き換えたものを読み込ませます。
Tampermonkeyを使えば実現できます。
(過去に制限回避できるスクリプトを配布して公式から警告受けた人がいるので、今回配布はせずに流れだけ簡単に紹介します)
ニコ動で読み込まれるJavaScriptの1つにwatch_appがあります。
その中の至る所にisPremiumというキーがあるので全部値をtrueにしてやればプレミアム会員と認識されることになります。
書き換えたものを自分のサーバーにアップロードします。
Tampermonkeyを使ってニコ動で読み込まれるスクリプトをブロックし、書き換えたものを代わりに読み込ませればプレミアム機能を使えます。
さいごに
一般会員でもプレミアム機能を使える理由を説明してみました。これを防ぐにはサーバー側で制限する必要がありますが、それは無理なんじゃないかと思っています。
それか、JavaScriptを超絶読みづらくするとか・・・?