動画プレーヤーが、出典カード、時系列に並ぶメモ、確認済みのメモにつながっている。その上には疑問符の付いたカードがある。

本への言及だけでは、その本を勧めた証拠にはなりません。書名が正しく一致しても、話者がどの版を指していたかは分かりません。最終的な参考文献一覧、つまり出典記録を伴う書籍リストでは、これらの確認を分けて扱う必要があります。

対象動画と「おすすめ」の基準を決める

ある読者が、YouTubeチャンネル内の全動画からおすすめの本を抽出するプロンプトを求めていました。ここには別々の問いが2つあります。対象とする動画をすべて集めたか。各話者が各書籍について何を述べたか確認したか。プロンプトだけでは、どちらの結果も確かめられません。提示された質問は、読者1人が抱える課題を示しています。同じサービスを必要とする人が何人いるかは示していません。読者の質問:2025年1月30日公開。確認できた質問は1件のみ。

まず、収集のルールを文章にします。例えば、特定のインタビューシリーズや、明確な期間を選びます。動画一覧をどのように入手したか記録します。範囲を限った検索だけでは、そのチャンネルの過去の投稿をすべて見つけた証拠にはなりません。

次に、何を「おすすめ」として数えるか定義します。「話者が誰かにその本を読む、または使うよう勧めている」など、明確なルールを使います。対象読者や目的が示されている場合は、それも残します。経験豊富な読者に勧められた本が、初心者にも適しているとは限りません。

「推奨」「言及」「批判」「引用」「不明」を別々のラベルにします。本を引用した話者が、誰かにその本を読むよう勧めたとは限りません。話者の助言に肯定と否定が混在する場合は、その条件をラベルの横に残します。

収集する動画の範囲を決め、その範囲を確認する方法は、字幕コレクションの作成ガイドを参照してください。この記事では、選定済みの動画群を出発点として、その中で取り上げられる本を確認します。

手作業での確認か字幕収集かを選ぶ

動画が少ない場合は、各動画を開き、字幕があれば確認します。本を取り上げている可能性がある箇所を聞きます。本の特定に役立つ場合は、画面に映る表紙や書名も確認します。作業中に、元の動画の該当時刻を保存します。

動画が多い場合は、YouTube Transcript Scraper:2026年10月25日に公開仕様を確認。実行テストは未実施で、既存の公開字幕トラックを収集できます。Actorは、ホスト環境で動くデータ収集プログラムです。このActorは、動画の直接URLまたは動画IDを受け付けます。動画IDは、1本の動画を識別するための値です。

このActorは、チャンネル、再生リスト、検索を入力として受け付けません。音声から新たに文字起こしをしたり、音声や動画をダウンロードしたりする機能もありません。選定した動画は利用者が指定する必要があります。発言を聞く作業と書籍の確認も、利用者が行います。

Taskは、保存された入力設定です。字幕一括取得Task:2026年10月25日に公開状態を確認。保存済み入力と実行は未検証は、字幕収集を始めるための設定例として文書化されています。提示された根拠には、公開ページとTask IDが存在していました。これによって確認できるのは、保存された設定が存在することだけです。実行の成功や書籍リストの完成を示すものではありません。

以下の方法は、利用者が行う作業を説明したものです。このガイドの作成にあたり、Actorもモデルも実行していません。

8つの手順で進める

1. 選定した動画の一覧を保存する

選定した動画ごとに、管理一覧の項目を1つ作ります。管理一覧とは、確認する予定の出典をまとめた一覧です。動画ID、URL、選定理由、発見元を保存します。字幕収集が未実施、成功、失敗のどの状態かも保存します。

対象から除外した動画は、選定した動画と分けて管理します。取得を試していない動画は、字幕取得の失敗ではありません。字幕取得に失敗したことは、その動画に本が登場しない証拠にはなりません。

チャンネル全体の完全な一覧を目指す場合は、まず、その範囲を裏付ける動画管理一覧を作ります。それができるまでは、結果を「選定した動画で見つかった本」と表現します。

2. 少数の動画から時刻情報付き字幕を収集する

以下の入力例を出発点として使います。JSONは、フィールド名と値を保存するテキスト形式です。

json
{"includeFailedInputDetails":true,"outputFormats":["json"],"preferredLanguages":[],"startUrls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]}
8つの手順で進める

実行前に、サンプルURLを対象の公開動画URLに置き換えます。このサンプルは入力形式の例です。本に関する有用な発言箇所があることを示すものではありません。

4つのフィールドの用途は次のとおりです。

  • `startUrls`には、動画の直接URLまたはIDを指定します。文書化された入力仕様では、1~1,000件を受け付けます。同じ動画IDを繰り返し指定しても、処理は1回だけです。
  • `outputFormats`は、結果の形式を指定します。時刻情報付きの区間を残すため、`json`を維持します。
  • `preferredLanguages`には、希望する字幕言語を優先順に並べます。空のリストを指定すると、利用可能な字幕トラックを使います。英語を必須にする設定ではありません。
  • `includeFailedInputDetails`は、実行の`OUTPUT`レコードに入力失敗の詳細を含めるよう指定します。

希望する言語を設定し、そのどれも利用できない場合、Actorは言語を利用できないという失敗を報告します。代わりに翻訳を返すことはありません。

取得に成功した重複のない動画ごとに、データセットの1行が生成されます。データセットの1行とは、保存された結果1件です。成功した結果の行が生成されなかった入力も含め、失敗した入力を`OUTPUT`で確認します。これらの動作は、Actorの仕様:2026年10月25日確認。公開スキーマと文書のみに基づきます。

3. 書名の候補を探し、該当箇所を保存する

キューとは、時刻情報が付いた字幕テキストの1区間です。利用可能なキューを読み、書名や著者名の候補と、その前後にある読書の助言を探します。「recommend」という単語だけを検索しないでください。別の言葉で勧めている場合があります。

本の候補ごとに、加工していない字幕テキストと動画IDを保存します。キューのフィールド`startSeconds`と`endSeconds`も保存します。これらの値は、動画の開始時点から見たキューの位置を示します。

前後のキューに著者、条件、後の訂正が含まれる場合は、それらも残します。離れた発言箇所をつなげて、連続した1つの発言にしないでください。

言語モデルは、渡されたテキストから候補を見つける作業に役立つ場合があります。候補とは、まだ確認が必要な一致の可能性です。提案には、根拠となる元の発言箇所を必須とします。元の発言箇所がない書名は採用しません。モデル自身の知識で、欠けている著者名や書名を補ってはいけません。

4. 発言を聞き、話者の見解を記録する

候補となった発言箇所を開きます。その前後も聞きます。発話された書名と著者名を確認します。名前の特定に役立つ表紙や書名が画面に映っていれば、それも確認します。

出典から助言者を特定できる場合は、その人を記録します。インタビューでは、司会者が書名を読み上げ、ゲストが意見を述べる場合があります。根拠なしに、両方を同じ人の行為として記録しないでください。

発言箇所の全体を踏まえ、推奨に関するラベルを選びます。

8つの手順で進める
ラベル記録する内容
推奨助言の内容と、明示された対象読者または目的
言及推奨の根拠を伴わない、本への言及
批判否定的な意見と、その適用範囲
引用引用された内容と、それを紹介した人
不明まだ確認が必要な言葉や文脈

「上級者向け」などの条件は、推奨の横に残します。「初心者向けではない」などの否定的な発言は、批判の横に残します。どちらも、条件のない肯定的なラベルに置き換えないでください。

発言を正確な文言で公開する必要がある場合は、引用の確認ガイドに従います。この書籍リストの作成方法では、確認済みの意味と元の発言箇所が必要です。長い引用は必要ありません。

5. 書名と著者を、書誌レコードと照合する

出版社自身の目録か、利用方法が文書化された図書館の目録を検索します。書誌レコードとは、出版された著作や版を記述した記録です。書名と著者の両方が確認できている場合は、組み合わせて検索します。

著者、副題、言語、同じ著作であるかを比較します。書名に似た単語があるだけでは不十分です。レコードのURLと、一致すると判断した理由を短く保存します。複数のレコードが候補として残る場合は、選択肢を保持し、区別に必要な根拠を記します。

Open Libraryは、書名と著者による検索、および著作単位の結果と書籍詳細について文書で説明しています。検索スキーマ、つまり返されるフィールドの構造は、変わる可能性があります。一般的な検索結果だけで、動画に映った版を特定できると考えないでください。Open Library Search API:2026年10月25日確認。スキーマの安定性は保証されていません。

出典に「Field Notes」とだけあり、著者が示されていない場合、もっともらしい書誌検索結果も候補にすぎません。表を埋めるためだけに、最初の結果を選ばないでください。

6. 著作と版を分けて扱う

著作とは、創作物としての本そのものです。版とは、その著作が出版された特定のバージョンです。版が不明でも、著作は特定できる場合があります。

ISBNは国際標準図書番号で、特定の版を識別するために使います。動画と書誌情報の根拠から、その版を特定できる場合だけ追加します。書名が一致するだけでは、近くに表示されたレコードからISBNをコピーする理由にはなりません。

著作の特定情報、版の特定情報、ISBNは、別々の値で管理します。例えば、書名と著者を確認できても、版の根拠がない場合があります。その場合は、著作の一致を保持し、版とISBNは不明のままにします。

不明はゼロという意味ではありません。ISBNが分からないフィールドにゼロを入力しないでください。構造化データでは、値がないことを`null`で示せます。読者向けの表では「不明」と書き、足りない根拠を説明します。

7. 書籍の記録と発言箇所の記録を別々に保存する

特定できた著作を1つの表に保存します。出典内のすべての言及箇所は、別の表に保存します。言及箇所とは、本について話している1つの箇所です。

1つの著作について複数の発言箇所があれば、根拠の記録も複数のまま残します。それによって本の数が増えるわけではありません。同じ助言の繰り返しなら、独立した複数の推奨にもなりません。

自分で付けた記録キーで、表を結び付けます。このキーは、手元の記録を参照するためのラベルです。ISBNでも、Actorの出力フィールドでもありません。未確定の候補は、どの著作か特定できるまで別の一覧に残します。

以下の表は、保存するフィールドを示しています。書誌レコードとの一致や推奨ラベルは、利用者が確認して判断します。字幕取得用のActorがこれらを判断するわけではありません。

8. 残した発言箇所すべてと最終リストを照合する

残した推奨ごとに、元の発言箇所をもう一度開きます。最終的な書名、著者、話者、ラベル、対象読者の条件を出典と比較します。次に書誌レコードをもう一度開き、著作と版の判断を確認します。

未確定の項目と除外した項目も確認します。不明だった著者名が、推測した著者名に変わっていないか確かめます。批判が推奨に変わっていないか確かめます。字幕を取得できなかった動画が、「本は登場しない」という結果に変わっていないか確かめます。

確認済みの著作、その発言箇所の記録、未確定の候補を書き出します。結果には、選定した動画群と字幕取得の失敗も併記します。次に読む人が、見つかった内容と未確認の内容の両方を把握できるようにします。

表に保存するフィールド

著作の表には、次のフィールドを残します。

表に保存するフィールド
フィールド用途
手元で付けた著作キー著作と、その発言箇所の記録を結び付ける
確認済みの書名と著者特定できた著作を示す
副題と言語似たレコードを区別する助けになる
書誌レコードのURL読者が一致の判断を確認できるようにする
一致の根拠そのレコードが該当すると判断した理由を説明する
版確認済みの版、または「不明」を示す
ISBN特定できた版の識別番号だけを保存する
未解決の点特定に関して残る限界を示す

言及箇所の表には、次のフィールドを残します。

表に保存するフィールド
フィールド用途
手元で付けた言及箇所キーこの発言箇所の記録を識別する
著作キーまたは未確定の候補無理に一致を確定せず、発言箇所を結び付ける
動画IDとURL出典の動画を識別する
発言箇所の開始時刻と終了時刻(秒)根拠の位置を示す
加工していないキューのテキスト収集した文言をそのまま残す
確認済みの書名と著者出典から確認できる内容を記録する
話者と、その人物を特定した根拠誰が助言しているかを示す
推奨に関するラベルと条件話者の見解を保持する
音声と画面の確認メモ訂正内容と、表紙から得た根拠を記録する
確認状況と確認日何をいつ確認したかを示す

元の字幕データの行は、別に保存します。役立つ出典フィールドには、`transcriptLanguageCode`、`isAutoGenerated`、`status`、`scrapedAt`があります。収集日時は、発言箇所の時刻とは異なります。字幕の言語、自動生成トラックかどうか、動画をどこまで収集したかは、文言の正確さを証明しません。

実例で見る手順:独自に作成したフィクション

この例の内容は、すべて独自に作成したフィクションです。動画のラベル、時刻、発言、収集結果は架空のものです。「The River Atlas」と「Field Notes」は架空の書名です。実在するISBNや、実際の推奨を示すものではありません。

動画を3本選んだとします。字幕収集は2本で成功し、1本で失敗します。収集結果の計算は次のとおりです。

選定した動画3本 = 字幕を収集できた動画2本 + 字幕取得に失敗した動画1本。

これは動画の数です。本、話者、推奨の数ではありません。取得に失敗した動画は、本について未確認のままです。

取得できた字幕には、本の候補に関する言及箇所が3つあります。

実例で見る手順:独自に作成したフィクション
架空の動画発言箇所候補確認済みの文脈
A60~66秒The River Atlas話者がその本に言及している
A100~108秒The River Atlas話者が初心者向けの教材として使わないよう述べている
B30~35秒Field Notes話者が著者名を示していない

キューの長さは、66 − 60 = 6秒、108 − 100 = 8秒、35 − 30 = 5秒です。合計は6 + 8 + 5 = 19秒です。これは、離れた3つのキューの長さを合計したものです。連続した1つの発言箇所でも、聞いた時間の総計でもありません。

発言を聞いた後も、「The River Atlas」の言及箇所を両方残します。後の発言によって、初心者向けの読書リストで述べられる内容が変わります。根拠から確認できるのは、本への言及と、初心者向けに使うことへの批判です。別の読者層に対する肯定的な推奨は確認できません。

「Field Notes」は、著者名も、他の本と区別する根拠も示されていないため、未確定のままです。著者を作り上げたり、書名の単語だけで書誌レコードを選んだりしないでください。

どちらの架空の書名にも、書誌レコードは提示されていません。そのため、この例には言及箇所の記録が3件、異なる書名の候補が2つありますが、一致を確定できた書誌レコードは0件です。両方の候補とも、版とISBNは不明です。

一致を確定できたレコードが0件というのは、このフィクション内で確認された件数です。ISBNが不明というのは、情報が欠けている状態です。これらの値は、意味が異なります。

最終的な初心者向けのおすすめリストは空になります。両方の候補を確認メモに残します。次に決めるのは、より確かな出典と書誌情報の根拠を探すか、不確かさをそのまま残すかです。リストが完成して見えるように、無理に肯定的な推奨を作らないでください。

失敗に対処し、確認の限界を示す

問題ごとに、別々の状態を使います。

失敗に対処し、確認の限界を示す
問題必要な対応
入力した動画の字幕取得に失敗した実行の`OUTPUT`を確認し、失敗した動画を管理一覧に残す
指定した言語を利用できない失敗を記録する。翻訳が返されたと記載しない
音声を聞いても書名がはっきりしない書名を未確定のままにする
話者が誰か分からない話者を不明のままにする
複数の書誌レコードが該当する候補と、足りない根拠を残す
著作は一致するが、版は特定できない著作の一致を保持し、版とISBNは不明のままにする
本への言及はあるが、助言はない「言及」ラベルを保持し、確認済みの推奨から除外する
助言に対象読者の条件が付いている最終リストにもその条件を残す

公開動画ページ、Actorのページ、公開Taskページ、公開書誌レコードは、公開された情報源です。アカウントに保存された入力や実行記録を見るには、それらを保持するアカウントへのアクセスが必要です。公開された設定ページだけでは、アカウントで何が保存され、何が実行されたかは分かりません。実行した場合は、実際の結果を、ここで提案した方法とは別に記録します。

収集範囲の限界を、分かりやすい言葉で示します。選定した動画数、字幕取得に成功した動画数、失敗または未実施の動画数を、それぞれ分けて報告します。これらの数を、書名の正確さや、チャンネル全体を漏れなく収集した度合いの指標として説明しないでください。

出典と参考資料

著者 Chronometrica · 更新日

ページの先頭へ ↑