解決する課題
学生はひとつの概念を復習するために講義全体を見直し、多くはそもそもノートを取りません。教員は学習教材を提供したいものの、すべての回について書く時間がありません。再生リスト全体に対応する生成ツールがあれば、すべての学習者に一貫した検索可能な教材を提供できます。
最初のバージョンに含めるべき機能
- 講座の再生リスト全体をワンクリックでインポート
- 見出しと重要用語を含む講義ごとの構造化ノート
- Ankiなどの間隔反復アプリにエクスポートできるフラッシュカード
- 講座内のすべての講義を横断する検索
- 各ノートから動画のタイムスタンプへのリンク
開発手順(ステップごとに解説)
- 01
再生リストをインポートする
講座の再生リストURLを指定して/playlists/resolveを呼び出し、すべての講義を順番どおりに取得します。
- 02
文字起こしを一括取得する
format.paragraphsとformat.timestampを指定してIDを/batchに送信します。
- 03
ノートとカードを生成する
講義ごとに、構造化されたノートと一問一答形式のフラッシュカードをそれぞれタイムスタンプ付きで作るようLLMに指示します。
- 04
学習体験を作る
埋め込み動画の横にノートを表示し、講義を横断する検索を追加して、フラッシュカードをAnki互換形式でエクスポートできるようにします。
サンプルコード
このアイデアは「レシピ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作る価値がある理由
学生には月額サブスクリプションで販売するか、教員や講座プラットフォームには修了率を高める機能として販売します。大学はアクセシビリティや学習支援のためにライセンスを導入する可能性があります。
避けるべき失敗
- 要約しすぎること:学生に必要なのは要約だけでなく、定義、例、手順です。
- 講座の順序を失うこと:ノートが講座の構成に沿うよう、再生リストの順序を保ちましょう。
- 文脈のないフラッシュカード:各カードを、それが説明されている講義内の場面にリンクしましょう。
このアイデアに関する質問
YouTube動画から講義ノートを作れますか?
はい。段落とタイムスタンプ付きで文字起こしを取得し、LLMで動画にリンクした構造化ノートに変換してください。
講座全体を一度に処理できますか?
はい。再生リストを解決し、すべての講義を1回のバッチリクエストで送信してください。
完成版はありますか?
当社のStudyアプリは、YouTube動画をAIノート、フラッシュカード、クイズに変換します。APIを使えば、自分の講座やプラットフォーム向けに独自のバージョンを作れます。