チャンネルポイントの自動獲得にはBetterTTVが便利
タイトル通り!BetterTTVはいろんなブラウザに対応した拡張機能。入れると痒い所に手が届く代物。
BetterTTVの一つの機能に,チャンネルポイントを自動で取得してくれる便利なものがあるので,
それを有効化しよう。
これ以下はチャンネルポイントをまだよく知らない人に向けての話と,
BetterTTVがTwitchのチャンネルポイントをどうやって自動取得しているかの話です。
私は普段Twitchで配信を見ていますが,Twitchには
チャンネルポイント(Community Points)という機能があります。
このチャンネルポイントは,自分自身に貯まるポイントで,チャンネルごとに溜まります。
チャンネルポイントは配信を一定時間視聴すると溜まります。
例えば,5分視聴すると10ポイント。15分に一度は50ポイントを取得できる機会もあります。
また,視聴だけでなくフォローやビッツ(投げ銭),連続視聴などでもポイントが貯まります。
さらに,チャンネルのサブスクに加入していればポイントが最低1.2倍増加する特典もありますよ。
せっかく溜まったチャンネルポイントはどうやって使うのか。
その使い道はチャンネルの持ち主,つまり配信者が決めることができます。
例えば初期値には”メッセージを強調表示する”というものがあります。
これは,チャット欄に打ったメッセージがハイライトされるという,
いつ役に立つかはあまり想像できないが,そんな感じのものが用意されています。
そこから配信者が自由に好きなチャンネルポイント特典を追加できます。
どんなチャンネルポイントがあるのかは,実際に配信者のチャンネルにアクセスして見てみるのがよい。
ではそのチャンネルポイントを自動取得するためにどんな手法が用いられるのかを解説していきます。
BetterTTVでは,TwitchがWebSocketを用いてさまざまなやりとりをしていることを利用しています。
WebSocketはリアルタイムの視聴者数の取得や
ハイプトレインの状況の取得,そしてチャンネルポイントの獲得など,
Twitch固有の機能を実現するにあたってとても大切なものになります。
それではチャンネルポイント関連に絞って,処理の内容を見ていきましょう。
BetterTTVがどのようにして自動でチャンネルポイントを獲得できるようにしているのか,
これを見ることでなんとなくわかるようになります。
また,チャンネルポイントは様々な方法で獲得でき,すべての方法を調べることができていないため,
15分に1回ボタンが現れてユーザがクリックすることで取得できるポイントに絞って見ていきます。
また,この処理はブラウザの開発者ツールのネットワークタブからも見ることができたり,
Proxymanといった便利なツールでもキャプチャすることができますよ。
配信を15分間見ていると,WebSocketの通信でサーバー側からメッセージが送られてきます。
そのメッセージは,チャンネルポイントを取得できるような状態になったよ,というもの。
それを受信すると,TwitchのUIではユーザがクリックできるボタンが出てきます。
普通ならこれをユーザが逐一クリックして,ポイントをゲットする必要があります。
BetterTTVではこのWebSocket通信でのやりとりを検知して,自動的にポイントをゲットしてくれるのです。
(追記: BetterTTVではWebSocketのやり取りは監視していませんでした。他の拡張機能にはその機能を持ったものがあります。)
普通にボタンを押した場合の動作をBetterTTVでも真似ていますよ。
普通にボタンを押すと,gql.twitch.tvというTwitchのAPI的なエンドポイントにPOST通信が行われます。
そこで,ポイントを獲得したいです,という要求がサーバに送られているのです。
そしてこの要求はむやみやたらにできるわけではなく,
必ずIDを指定する必要があります。IDが無効だったり1度使われていたりするとサーバはエラーを返し,
不正にチャンネルポイントを取得することはできなくなっています。
そのIDはWebSocket通信に載っているので,BetterTTVではWebSocket通信の内容をしっかりと見てから
gql.twitch.tvにPOST通信を送るのです。
そうすることで,チャンネルポイントを自動で取得することができるのです。
Chrome拡張機能にはBetterTTVの他にも,同じ仕組みを利用した拡張機能や,
一定のインターバルごとにTwitchのUI上にボタンがあるかを確認し,
ボタンが存在したらクリックイベントを送るなどの方法を取る拡張機能もあります。
ぜひ自分の目で処理を確かめてみて,面白さを感じてみてください!
また,他の拡張機能を使うときにも実際に自分の目で処理を確認し,
本来必要ではない通信が行われていたり,不審な処理が書かれていないかを確認することも,
自分自身の情報を守り,ブラウザを安全に使うためにとても大切になってきますね。