どこでも見れるメモ帳

とあるSEの備忘録。何かあれば気軽にコメントください〜

YouTubeDataAPIv3をPythonから使って最近の動画傾向を調べてみた

f:id:ni66ling:20201230192240p:plain
YouTubeDataAPIv3をPythonから使って最近の動画傾向を調べてみた

はじめに

2020年はコロナ特需でYouTubeは大変賑わいましたね。
そこで、特にプログラミングや機械学習に関してYouTube動画の現状を知りたく、
YouTubeDataAPIv3を用いて簡単に調べてみました。

やったこと

  • Youtube Data API v3 を pythonから呼び出して公開されている動画のメタ情報を取得
  • 閲覧数やコメント数、いいね数などを簡単に基礎集計
  • 動画タイトルの共起ネットワークをGephiで確認

ソースコード

ざっくりJupyterNotebookに記載しGitHubにアップしました。
YoutubeAnalysis/youtube_basic_analysis.ipynb at master · KenshoFujisaki/YoutubeAnalysis · GitHub
ソースコードにおけるYouTube検索キーワードは「プログラミング」としてます。

結果

機械学習」に関するYouTube動画

キーワード「機械学習」で検索した全動画タイトルの共起ネットワーク ※色分けはGephi上でモジュラリティクラスを適用してます。

  • メジャーなライブラリ(tensorflowやscikit-learn, OpenCVなど)やメジャーな手法(ランダムフォレストやSVM、決定木など)は、おおよそYouTubeにもアップされている。
  • サード製ツール(DataRobotやSony Neural Console、RapidMinerなど)も結構アップされている。
  • 細かいアルゴリズム手法はあまり見当たらない。

「プログラミング」に関するYouTube動画

f:id:ni66ling:20201230201320p:plain
「プログラミング」動画タイトルによく出てくる単語

  • やっぱり初心者向け動画が多め
  • あとスクール系も多い
  • 言語としては Python, JavaScript, Ruby, JAVA, GAS,...という順位

f:id:ni66ling:20201230201400p:plain
「プログラミング」動画のアップロード数推移

  • ここ2年くらい2019年くらいからすごい伸びている
  • 2020/10が凹んでいるのは不思議
  • 2020/12直近多いのは、過去動画を上げ直しているから?

キーワード「プログラミング」で検索した全動画タイトルの共起ネットワーク

  • 共起ネットワークでみても、やはり主な動画は初心者や入門者向けで、複雑なものは少なめ。
  • そもそもプログラミング勉強すべきか?とか、どう勉強する?とか、転職にプログラミング役に立つ?とかそういうフワッとしたテーマの動画が多め。

つまづいたポイント

  • Youtube Data APIの利用制限(クォータ制限)が結構厳しい

    • 1日のクォータ上限は10,000。200回キーワード検索すると上限にぶつかる。
    • クォータ消費について
      • 1キーワード検索あたり50クォータ
      • 1ビデオやチャンネルの詳細取得あたり1クォータ
      • 詳細は 公式のこちらを参照
    • GCPで別プロジェクトを作成し、API KEYを新たに発行すればクォータ制限を回避できる。
    • クォータ制限はちゃんと申請すれば無料で上限引き上げられるみたいだが、結構手間がかかる。
  • GephiにおけるCSVファイル読み込みが少しクセあり

    • Gephi0.9.2を起動する
    • 「ファイルを開く」から、エッジ情報のCSVを開く
    • 次に「Import spreadsheet」からノード情報のCSVを「Append to existing workspace」として開く

おわりに

今回は試せなかったのですが、
YouTubeDataAPIv3ではチャンネル情報の取得サブスクリプション情報の取得もできるみたいですので、今度それらを試してみようと思います。

追記 2020/12/31

チャンネル登録(サブスクリプション)のネットワーク可視化も行ってみました。
※ソース/ノートブックはこちら: YoutubeAnalysis/youtube_channel_analysis.ipynb at master · KenshoFujisaki/YoutubeAnalysis · GitHub ※サブスク情報を非公開のチャンネルは取得できていません。

  • 機械学習」に関する動画をアップしているチャンネルのサブスク関係 「機械学習」に関する動画をアップしているチャンネルのサブスク関係

  • 「プログラミング」に関する動画をアップしているチャンネルのサブスク関係 「プログラミング」に関する動画をアップしているチャンネルのサブスク関係

プログラミングに関する動画はやっぱりメジャーどころのYouTuberさんが発信しているみたいですね。 けど、こうやって可視化すると、メジャーみたいだけれど知らないチャンネルを知れて面白いです。

さて、2020年もあと少し。

追記 2021/01/02

Gephiで時系列ネットワークを扱えたため、いくつか動画にしてみました。
インポートするCSVファイルでカラム名を'timeset'と設定すると時系列で可視化できます*2

関連する過去記事

ni66ling.hatenadiary.jp

ni66ling.hatenadiary.jp

*1:5年くらいぶりGephi起動しましたが、やっぱり便利ですね。最初pythonでnetworkxでやりましたけど、規模が大きいと無理ですしダサいですので…

*2:備考: https://github.com/gephi/gephi/issues/1984