YouTube API データ活用

pytchatでアーカイブ配信のチャットを取得する方法【Pythonサンプル+実行結果付き】

2025年9月29日

YouTube公式APIでは、ライブ中のチャットは取得できますが、アーカイブ配信のチャット(リプレイ)は取得できません。
そこで活躍するのが、非公式ライブラリpytchatです。本記事では、pytchatを使って動画IDを指定し、チャットコメントをCSVに保存する方法を紹介します。

1. 前提と準備

  • Python 3.9+(推奨)
  • pytchatライブラリ

インストール

pip install pytchat

2. サンプルコード(アーカイブ配信のチャット取得)

import pytchat
import pandas as pd

VIDEO_ID = "YOUR_VIDEO_ID"  # 例: "dQw4w9WgXcQ"

chat = pytchat.create(video_id=VIDEO_ID)
rows = []

while chat.is_alive():
    for c in chat.get().sync_items():
        rows.append({
            "time": c.datetime,
            "author": c.author.name,
            "authorChannelId": c.author.channelId,
            "message": c.message,
            "amountValue": c.amountValue,  # SuperChat金額(ない場合は0)
            "amountString": c.amountString, # SuperChat表示(例: "¥500")
        })
    if len(rows) > 500:  # デモ用。500件で停止
        break

df = pd.DataFrame(rows)
print(df.head())

# CSV保存
df.to_csv("chat_archive.csv", index=False, encoding="utf-8-sig")
print("Saved to chat_archive.csv")

このコードを実行すると、指定した動画のチャットが順次取得され、CSVに保存されます。

3. 実行結果サンプル

timeauthorauthorChannelIdmessageamountValueamountString
2025-08-01 20:15:32ユーザーAUCxxxxxxおつかれさま!0
2025-08-01 20:16:10ユーザーBUCyyyyyy楽しかったです!500¥500

4. 注意点

  • 非公式ライブラリのため、YouTubeの仕様変更で動作が停止する可能性あり
  • SuperChat金額・通貨も取得可能だが、収益計算用途は規約違反の恐れ
  • 商用利用は規約に十分注意し、研究・分析目的に留めるのが安全

5. 次に読む

youtube-transcript-apiで字幕を取得する方法

Whisperで文字起こしして要約する方法

YouTubeの情報を取得する方法まとめ(入口へ戻る)

-YouTube API, データ活用