VTuberのコラボ相手をグラフにして可視化すると割とバズりました。
2020年にコラボしたVTuberのネットワークグラフができた……けど……これはもうグラフとは呼べない謎のカタマリだなぁ。なんとなくグループ同士で固まっている姿は確認できる。 #Vtuber pic.twitter.com/USRrDhHIbS
— ぎんしゃり🔑 (@givemegohan) January 17, 2021
せっかくなので作ったときのお話をしようと思います。
おおまかな手順
- 具体的に何を可視化するか考える
- VTuberの一覧を作る
- コラボ相手の一覧を作る
- 可視化する
さあいってみましょう。
何を可視化するか考える
とにかく「VTuberの人と人とのつながりを可視化したい」と思ってたんですが、具体的になんだよそれ、って話で。
- Twitterの相互フォロー
- コラボ動画を出した相手
あたりが候補だったんですが、Twitterのフォローはかなり気軽にやるでしょうし、コラボ相手の可視化がよかろうと。
さてじゃあ、コラボ相手ってどうやって探そう、って話なんですが。
上に見せたとおり、大規模なグラフを出したかったので抽出は自動化したい。まさか動画を一つずつ見て手作業で記録する、なんて手法は取りたくない。
Youtube Data APIのリファレンスとにらめっこして色々考えた結果、「動画の概要欄に相手チャンネルのURLが書いてあればコラボしているだろう」と思いつき、このセンで行くことにしました。
VTuberの一覧を作る
さて最初のつまづきポイントは、「VTuberの定義は何か」ということと、「VTuberの一覧はどうやって作れるか」という点。
VTuberの動画の概要欄って、コラボ相手以外にも、たとえば歌ってみたの動画ならMixや動画作成した人のYouTubeチャンネルとかも載せてあることが多いわけです。
なので、概要欄に載っているYouTubeチャンネルを見境なく抽出してはいけない、先にVTuberの一覧を作っておいて、VTuberのチャンネルが書かれているときだけコラボと判定する、という処理を組む必要がありました。
で、ユーザーローカルさんのVTuberランキングに載っているVTuberを片っ端から抜いてきました。
特にAPIとか無かったのでHTMLを雑に解析するWebスクレイピングをやりました。
(APIを用意していないWebサイトからデータを自動で抜いてくるのはあまり行儀がよくないのでおすすめしません)
ランキングなのでランク外の人が漏れてしまう懸念があったので4種類のランキングから抽出して統合しました。
各ランキング最下位付近はほぼ活動していない人のようなので、”生きている”VTuberはほぼ補足できたと思います。
それよりむしろ、ユーザーローカルさんに登録されていないVTuberを何人か見つけてしまったので、登録漏れのほうが怖いです。
とにかくこれにより、3,364人のVTuberを発見できました。
コラボ相手の一覧を作る
これはもう先の通り、「動画の概要欄に相手チャンネルのURLが書いてあればコラボしている」という判定を延々繰り返します。
つまり、
- VTuberの全動画の概要欄を読む
- 概要欄にYouTubeチャンネルのURLがないか探す
- 該当のURLが他のVTuberのものなら、コラボと判定する
ということです。
これはGoogle Apps ScriptでYouTube Data APIを叩く形でコーディングして実行しました。
GASは1回あたりの実行時間が6分に制限されているので6分ごとに再実行しなきゃいけなかったり、YouTube Data APIの1日あたりの実行回数を越えてしまって合計で3日ぐらいかかってしまったりしました。
なにぶん全VTuberの全動画の概要欄を読むので、実行回数はえらいことになりました。
これにより、106,781件のコラボを発見しました。
可視化する
さて、コラボ関係が見つかったところで可視化しましょう。
可視化のツールを色々検討した結果、求めるスタイルで可視化できそうなのがvis.jsだったのでこれを使いました。
ちなみにvis.jsに流し込むデータ形式への加工はgoogleのスプレッドシート上でやってます。
で、可視化にあたって大事なのは、「見やすくする」ことです。
そのために「ノードにYouTubeチャンネルのアイコンを使う」とか「コラボ人数が多いほどアイコンを大きくする」あたりの設定を行いました。
また、コラボをすべて描画すると処理が重い上、可視化結果から情報が読み取りづらくなる(ただのぐちょぐちょになる)ので、「重要度の低い情報をカットする」というのも大事です。
というわけで、「キズナアイを中心に、3ノード以内で辿れるコラボに限る」という制約を付けて可視化したのが最初のグラフです。
せっかくなのでフルサイズ載せましょう。30MBぐらいありますよ。
もう一つ、「キズナアイから辿れるすべてのコラボ」を可視化したのも出します。
おわり
という感じでデータ抽出や可視化ができて楽しかったですね。
YouTubeはまだまだいろいろ情報取れそうですし、グラフを描くネタがあれば他のグラフも色々描いてみたいね。