スナップショット検索API v2を使用して、ニコニコ動画の特定カテゴリ(タグ・キーワード)の統計を取得し、可視化するスクリプト群です。
- Python 3.11以上 (
tomllibを使用するため) - 日本語フォント環境 (
matplotlib-fontjaを使用)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtconfig.toml を編集し、取得したいキーワードやグラフのタイトルを設定します。
python getter.py [category]results/[category].pickle に検索結果が保存されます。
python analyzer.py [category]results/ ディレクトリに以下のファイルが生成されます:
*_annual-both.png: 投稿数と累計再生数の推移*_annual-newcommer.png: 新規投稿者数の推移*_annual-distribution.png: 再生数の分布(バイオリン図)*_continuation.png: デビュー年別の投稿継続率*_lifespan.png: 投稿者の活動期間分布*_most_popular.csv: 各年の最多再生動画リスト
- 長期活動者の抽出:
現役で活動している期間が長いユーザーTop 50を表示します。
python get_longest_active_users.py [category] - 一括処理:
get_all.ps1,analyze_all.ps1を実行することで、configに定義された複数のカテゴリをまとめて処理できます。
- 取得件数の制限: 使用しているスナップショット検索API v2の仕様上、取得オフセット(
from)の最大値が100,000となっています。1つのカテゴリで動画件数が100,000件を超える場合、全件取得できずにエラーが発生したり、データが欠落したりする可能性があります。その場合は、NicoApiClient側で分割して取得するなどの変更が必要になります。
results/: 取得したデータおよび解析結果の保存先config.toml: カテゴリ定義(タイトル、検索キーワード、グラフ描画設定)