某多チャンネル動画配信サービスのログイン処理を解析してPythonとGoでリプレイすることでブラウザの模倣動作を実装し、番組視聴者数のリアルタイムな24時間連続監視を実装しました。
以前の職場でコンシューマにまつわるデータを試験的に集める実装を多く担当しました。その中の成果の1つです。
某サービスでは、スマホアプリおよびWebブラウザのクライアントで動画の視聴が可能でした。その裏で番組情報のXHRが常に走っていて、現在の番組の累積視聴者数が常に表示されていました。
仮にその番組がバズった場合、SNSとサービスでの連動を監視することで一般ユーザーの動きが観測できそうと当たりをつけ、Webブラウザ版クライアントの解析を開始しました。minifyされたJavaScriptを紐解いていき、ログイン処理とトークン取得をまずPythonでエミュレートすることに成功。次いでGoへの移植と並列化を行い、24時間常に視聴者数の変化を監視する実装が実現しました。
監視が実現してしばらく経ったある日、とある番組が猛烈にバズり、配信元サーバーを落とす程にユーザーが流入しました。その際の急峻なユーザーの増加曲線と、APIサーバーのダウン時間の同時観測に成功しました。