開発ガイド · 研究者

談話分析のためのYouTube文字起こしコーパスの作り方

YouTubeは政治評論、ニュース、教育、文化の主要な場ですが、研究者はこれまで主にタイトル、コメント、再生回数を通じて研究してきました。文字起こしを使えば、実際に話された内容を、すべての引用にタイムスタンプを付けて大規模に分析できます。

対象ユーザー
コミュニケーション学、メディア研究、政治学、言語学の研究者
開発期間
1〜2週間
APIエンドポイント
/channels/resolve/batch/transcripts

解決する課題

手作業の文字起こしでは研究対象が数十本の動画に限られ、場当たり的なスクレイピングスクリプトは壊れやすく再現も困難です。研究者には、定義したチャンネルと期間のサンプルについて完全な文字起こしを確実に収集し、メタデータとともに保存し、他者が再現できるよう手法を共有する手段が必要です。

最初のバージョンに含めるべき機能

  • 文書化されたチャンネルのサンプルと期間
  • メタデータ付きの生のJSONとして保存された完全な文字起こし
  • 動画ごとの字幕ソースの記録(手動、自動、AI)
  • R、Python、NVivo、ATLAS.ti向けのCSVまたはテキストへのエクスポート
  • 再現のために再実行できる収集スクリプト

開発手順(ステップごとに解説)

  1. 01

    サンプルを定義する

    研究対象のチャンネルと期間を列挙し、方法のセクション用に選定基準を記録します。

  2. 02

    動画リストを取得する

    各チャンネルについて/channels/resolveを呼び出し、結果を公開日で絞り込みます。

  3. 03

    文字起こしを収集する

    動画IDを/batchに送り、各文字起こしの言語と字幕ソースを含むJSONレスポンス全体を保存します。

  4. 04

    分析の準備をする

    動画ID、チャンネル、日付、タイムスタンプ付きで文字起こしをテキストまたはCSVとしてエクスポートし、トピックモデル、キーワード頻度、質的コーディングで分析します。

サンプルコード

このアイデアは「レシピ3:再生リストをナレッジベースに一括登録」パターンをベースにしています。チャンネル、プロンプト、保存先はご自身のものに置き換えてください。

import requests

API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}

playlist = requests.post(f"{API}/playlists/resolve", headers=HEADERS,
                         json={"playlist_url": "https://www.youtube.com/playlist?list=PLAYLIST_ID",
                               "limit": 100}).json()

ids = [v["video_id"] for v in playlist["items"]]
batch = requests.post(f"{API}/batch", headers=HEADERS, json={
    "video_ids": ids,
    "format": {"timestamp": True, "paragraphs": True},
}).json()

# Large batches run async: poll GET /batch/{batch_id} until status is "completed"
for r in batch.get("results", []):
    if r["status"] == "completed":
        for p in r["data"]["transcript"].get("paragraphs") or []:
            store(video_id=r["video_id"], start=p["start"], text=p["text"])  # your vector DB

作る価値がある理由

研究者にとっての見返りは、手作業の文字起こしのごく一部のコストと時間で得られる、再現性のあるデータセットです。メディアモニタリング企業やシンクタンク向けに、有料データセットや分析サービスを構築するチームもあります。

避けるべき失敗

  • 自動字幕と人による字幕を区別せずに混在させること:精度が異なるため字幕ソースを記録しましょう。
  • 生のレスポンスを保存しないこと:分析を再実行できるよう元のJSONを保存しましょう。
  • 倫理審査とプラットフォーム規約を無視すること:データセットを公開する前に、所属機関の要件とYouTubeの規約を確認しましょう。

このアイデアに関する質問

YouTubeの文字起こしを学術研究に使えますか?

多くの研究者が使っています。特にデータセットを公開する前に、所属機関の倫理要件、YouTubeの規約、著作権法を確認してください。

YouTubeの自動字幕はどのくらい正確ですか?

音質、アクセント、話題によって異なります。APIは各文字起こしが手動字幕、自動字幕、AI音声認識のどれによるものかを返すので、それを考慮に入れられます。

一度に何本の動画を収集できますか?

Businessプランでは、1回のバッチリクエストで最大3,000件の動画IDを受け付けます。より大規模な研究では複数のバッチを実行できます。

今日から作り始めよう

毎月10クレジット無料。クレジットカードは不要です。

研究用YouTube文字起こしコーパスの作り方 | YouTubeTranscript.dev