
自分が所有する動画、または編集できる動画から始めます。説明欄の入力やアカウントの利用権限の確認には、所有者向けの動画管理画面であるYouTube Studioを使います。公開字幕を取得するツールは、チャプターの開始時刻の案を作る際に役立ちます。ただし、アカウント設定を確認したり、プレーヤーがチャプターを受け付けたことを証明したりはできません。
以下の方法では、確認済みのチャプターリストと、アカウントの利用権限の確認結果を別々に記録します。リストが正しくても、利用権限の問題が未解決の場合があります。その問題を見落とさないよう、記録を分けてください。
1. 動画、長さ、所有者アカウントの権限を確認する
チャプターとは、動画を区切って名前を付けた部分です。タイムスタンプは、その開始時刻を示します。チャプターの長さは、開始時刻から次のチャプターまでの時間です。最後のチャプターでは、動画の終了までの時間になります。
編集前に、次の手順を実行します。
- 変更する動画そのものを開きます。
- 自分が動画を所有しているか、説明欄を編集する権限があることを確認します。
- 動画のURLと動画IDを記録します。IDは、動画を識別するための短いコードです。
- 実際の動画で正確な長さを確認し、記録します。
- 現在の説明欄のコピーを保存します。
- 所有者アカウントで「上級者向け機能」を利用できるか確認します。
利用権限の確認結果は、「利用可能と確認済み」「利用不可」「未確認」のいずれかで記録します。確認していない設定は不明です。「利用不可」と記録しないでください。
手動チャプターと自動チャプターは分けて扱います。手動チャプターは、自分で追加するタイムスタンプとタイトルの行です。自動チャプターは、YouTubeが別の処理で作成します。YouTubeヘルプによると、手動チャプターは自動チャプターより優先されます。
自動チャプターがないことを、手動のリストが無効である証拠として扱わないでください。手動のリストは、手動チャプターの要件に照らして確認します。自動チャプターの利用条件を調べる場合は、その結果を別のメモに残してください。
公開字幕の取得結果から、こうした所有者アカウントの状態を確定することはできません。動画を管理するアカウントで確認してください。
2. 実際の動画からチャプターの開始時刻案を作る
チャプターの境界とは、あるチャプターが終わり、次のチャプターが始まる位置です。間隔を確認する前に、動画の内容に基づいて境界を選びます。
冒頭、話題が変わる各箇所、最後の部分を再生します。次の話題が実際に始まる位置を、各チャプターの開始位置にします。音声で読み上げられる見出しが手掛かりになる場合もあります。ただし、無言の実演や画面上の操作で話題が変わることもあります。
次の順序で進めます。
- 動画の主な部分を簡単なリストにします。
- 各部分の冒頭を再生します。
- 開始時刻の候補を記録します。
- その部分の内容を表す短いタイトルを書きます。
- 切り替わりをもう一度再生し、時刻とタイトルを確認します。
最初の開始時刻は00:00にします。冒頭には、内容に合った分かりやすいタイトルを付けてください。
視聴者が見たい部分を選べるタイトルにします。「パート2」よりも「材料を準備する」のほうが、内容がよく伝わります。タイトルがチャプター全体の内容を表しているか確認してください。ある話題に短く触れているだけでは、その話題をチャプター全体のタイトルにするのが適切とは限りません。
時刻付きの字幕は、音声で話題が変わる箇所を探すのに役立ちます。ただし、音声のない映像の変化は確認できません。字幕の文面が明確でも、境界の候補はすべて動画で確認してください。
この作業では、自分の動画をチャプターに分けます。他の人の講義から特定の説明を1つ見つけたいだけなら、概念を探すためのガイドが、その限定的な作業を扱っています。学習に役立つ区間が、公開用の完全なリストのチャプターに適している必要はありません。
3. 必要に応じて既存の字幕を使う
動画を見るだけでも、手動チャプターは作成できます。話題が変わりそうな箇所を探しやすくなる場合に、字幕を使ってください。
字幕トラックとは、1本の動画に対応する時刻付きのテキスト区間の集まりです。各区間には、文章と開始時刻、終了時刻があります。文字起こしは、これらの文章をまとめたものです。
YouTube Transcript Scraperは、既存の公開字幕トラックを読み取ります。Actorは、サーバー上で動作してデータを収集するプログラムです。Taskは、Actorの入力設定を保存したものです。
文書に記載されたこのActorは、公開YouTube動画の直接URLまたはIDを受け付けます。チャンネル、再生リスト、検索ページは収集用の入力として受け付けません。音声から新しく文字を起こすことも、音声や動画をダウンロードすることもありません。字幕がない場合は、引き続き自分で動画を見て作業してください。
提供された小規模な入力例は次のとおりです。
{"includeFailedInputDetails":true,"outputFormats":["json"],"preferredLanguages":[],"startUrls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]}`startUrls`のサンプルリスト全体を、対象の公開動画のURLに置き換えてください。サンプルURLは、正しい入力構造を示すためだけのものです。その動画がチャプター作成に役立つことを示す証拠ではありません。
各設定の役割は次のとおりです。
- `startUrls`には、入力する動画を指定します。この確認では動画を1本だけ使います。
- `outputFormats`ではJSONを指定します。JSONは、各区間の時刻を保持できる構造化テキスト形式です。
- `preferredLanguages`は空なので、Actorは利用可能な字幕トラックから最適なものを選びます。英語が選ばれる保証はありません。
- `includeFailedInputDetails`は、実行のOUTPUTレコードに失敗の詳細を含めるよう指定します。OUTPUTは実行結果の要約です。
希望する言語を設定した場合、Actorは指定順に試します。どの言語も利用できない場合は、別の言語を黙って選ぶのではなく、指定言語が利用できないという失敗を報告します。字幕を使う前に、取得結果の言語を確認してください。
公開されているタイムスタンプ付き文字起こしTaskは、この作業の出発点として文書に示されています。提供資料の確認では、そのページとTask IDの存在を確認しています。ただし、認証が必要な保存済み入力の確認や、Taskの実行は行っていません。実行を開始する前に、自分で入力を確認してください。
サンプル入力は、提供されたスキーマ検証に合格しています。スキーマ検証は、入力の構造を確認するものです。この記事のために有料のActor実行は行っていません。ここに示す収集手順は、すべて読者に実行を提案するものです。
字幕の取得結果を確認してから使う
自分で実行した後、対象動画と選択された言語を確認します。`videoId`、`videoUrl`、`transcriptLanguageCode`、`status`、`statusReason`を確認してください。次に、実行のOUTPUTを読み、失敗した入力の詳細を確認します。
取得に成功した重複のない動画ごとに、データセットに1行が作成されます。1行が1本の動画の結果です。失敗した入力から、取得成功の文字起こし行が作成されることはありません。そのため、行がない場合は失敗の確認が必要です。行がないことは、動画に有用なチャプターの境界がない証拠にはなりません。
返された各区間の`text`、`startSeconds`、`endSeconds`を使い、該当箇所を探します。`durationSeconds`は、null値も含め、返された値のまま保存してください。nullは、値が欠けているか不明であることを示します。0秒という意味ではありません。
`videoDurationSeconds`も同じように扱います。値がない場合は、実際の動画から長さを確認してください。最後の字幕の終了時刻を、動画の終了時刻として使わないでください。発話が終わった後も、動画が続く場合があります。
言語情報、字幕の取得元情報、`videoCoverageRatio`は、文字の正確さを証明するものではありません。元の取得結果を保存し、開始時刻の候補を動画の再生で確認してください。Actorの公開仕様は字幕収集に対応していますが、チャプターリストを自動で承認するものではありません。
チャプターのタイムスタンプは、字幕キューとも異なります。字幕キューとは、字幕の表示単位です。それぞれに表示の開始時刻と終了時刻があります。字幕ファイルが必要な場合は、字幕変換ガイドを使ってください。手動チャプターを追加するために、字幕を字幕ファイルへ変換する必要はありません。
4. 書式とすべてのチャプターの長さを確認する
適切な境界が決まったら、説明欄の各行にタイムスタンプとタイトルを1組ずつ書きます。最初の行は00:00から始めます。3行以上を用意し、各時刻を前の時刻より後にしてください。
同じ時刻を重複して使わないでください。動画の範囲外の時刻も使わないでください。動画の終了時刻以降を開始時刻にすると、10秒以上のチャプターを作れません。
長さを確認するため、各開始時刻を秒に換算します。分の値に60を掛け、秒の値を足します。たとえば、01:20は1 × 60 + 20 = 80秒です。
最後以外のチャプターは、次の開始時刻からそのチャプターの開始時刻を引きます。最後のチャプターは、動画全体の長さからその開始時刻を引きます。
すべての計算結果が10秒以上である必要があります。最後のチャプターも含め、すべての結果を確認してください。リストに並ぶタイムスタンプ同士の間隔が要件を満たしていても、最後のタイムスタンプから動画の終了までが短すぎる場合があります。
短すぎるチャプターがあれば、内容を見直します。近くのチャプターと統合するか、実際の話題の切り替わりに合う別の境界を選ぶかを判断します。その後、長さをもう一度確認します。計算上の条件を満たすためだけに時刻を動かし、動画の内容と合わない区切りにしないでください。
YouTubeの公式ルールでは、00:00からの開始、時刻順に並んだ3つ以上のタイムスタンプ、各チャプターの長さが最低10秒であることを求めています。これらを確認すれば、書式の要件を満たすことは確認できます。ただし、アカウントの利用権限や、プレーヤーがチャプターを受け付けたことまでは確認できません。
5. 計算例:独自に作成した架空の2分間動画
この例は、独自に作成した架空のものです。動画、タイトル、編集案はすべて創作です。実在する所有者の動画は編集しておらず、公開されたプレーヤーの確認も行っていません。計算は、長さの確認方法だけを説明するためのものです。
架空の動画が02:00で終わるとします。2 × 60 = 120秒です。説明欄に追加する行の案は、次のとおりです。
00:00 Prepare
00:35 Collect
01:20 Check開始時刻は0秒、35秒、80秒です。各チャプターを確認します。
| チャプター | 開始時刻 | 次の開始時刻または動画の終了時刻 | 計算 | 長さ |
|---|---|---|---|---|
| 準備 | 00:00 | 00:35 | 35 − 0 | 35秒 |
| 収集 | 00:35 | 01:20 | 80 − 35 | 45秒 |
| 確認 | 01:20 | 02:00(終了) | 120 − 80 | 40秒 |
3つのチャプターはすべて10秒以上です。最初の開始時刻は00:00で、3つの開始時刻は時刻順に並んでいます。
長さの合計も35 + 45 + 40 = 120秒になります。架空の動画の長さと一致します。この合計で確認できるのは、計算が合っていることです。タイトルが実際の内容に合っていることや、YouTubeでチャプターが表示されることは証明できません。
次に、01:55に4つ目のチャプターを追加するとします。開始時刻は1 × 60 + 55 = 115秒です。
その前のチャプターの長さは115 − 80 = 35秒になります。この間隔は要件を満たします。しかし、最後のチャプターは120 − 115 = 5秒しかありません。10秒以上という要件を満たしません。
架空の内容を見直したうえで、この境界案を削除するか修正します。02:00を別のチャプターの開始時刻として追加しないでください。その場合、最後の長さは120 − 120 = 0秒になります。
実際の確認で終了時刻が不明な場合は、動画を確認するまで不明のまま扱う必要があります。終了時刻が分からなければ、最後のチャプターの長さを合格と判断できません。
6. 説明欄を保存し、プレーヤーを確認する
内容、書式、長さを確認したら、所有者アカウントからリストを公開します。
- YouTube Studioで、所有する対象動画を開きます。
- 変更前の説明欄のコピーを保存します。
- 確認済みのタイムスタンプとタイトルの行を説明欄に追加します。
- 説明欄を保存します。
- 保存後の動画ページを開きます。
- 説明欄に意図した行が含まれていることを確認します。
- プレーヤーにチャプターが表示されるか確認します。
- 表示されたチャプターの開始位置が、意図した話題の切り替わりに合っているか確認します。
実際に確認した結果を記録します。「説明欄を保存できた」と「チャプターが表示された」は別々の結果です。テキストを保存しただけでは、プレーヤーにチャプターが表示されることを確認したことにはなりません。
チャプターが表示されない場合は、保存された行、各チャプターの長さ、「上級者向け機能」の利用権限を再確認します。下書きや書式の確認だけで、公開に成功したと報告しないでください。提供された資料では、表示の保証や、一定の待ち時間は確認されていません。
7. チャプター表と利用権限の記録を分けて保存する
編集後に同じ確認を繰り返せるよう、必要な情報を保存します。バージョンとは、ある時点で保存したチャプターリストの状態です。各バージョンに識別用の名前と確認日を付けてください。
チャプターごとに1行を使います。
| 保存する項目 | 記録する内容 |
|---|---|
| 動画IDとURL | 確認した動画を正確に特定できる情報 |
| リストのバージョン | 今回の編集に使ったバージョン |
| 動画の長さ | 確認済みの長さを秒で記録 |
| チャプターの順番 | リスト内で何番目か |
| チャプターのタイトル | 説明欄に入力したテキスト |
| 開始時刻 | 説明欄のタイムスタンプ |
| 秒換算の開始時刻 | 同じ開始時刻を秒に換算した値 |
| 次の開始時刻または終了時刻 | 長さの計算に使った値 |
| チャプターの長さ | 引き算の結果を秒で記録 |
| 内容の確認 | 境界で実際に確認した内容 |
| 確認日 | このバージョンを確認した日 |
編集権限、「上級者向け機能」の利用権限、保存した説明欄、実際に確認したプレーヤーの結果は、動画単位の別の記録にまとめます。確認が終わっていない項目は、不明として記録してください。
字幕を使う場合は、選択された言語、`scrapedAt`、失敗に関するメモも保存します。`scrapedAt`は字幕を収集した時刻を記録する項目です。所有者アカウントの設定やプレーヤーを確認した時刻ではありません。
動画をカットしたり差し替えたりした後は、変更箇所より後のチャプター開始時刻をすべて再確認します。動画全体の長さと最後のチャプターの長さも確認し直してください。以前の計算は、以前のバージョンに対するものです。
8. 問題の状態に応じて次の確認を選ぶ
実際に確認した問題に応じて、次に確認する項目を決めます。
| 確認した状態 | 次の確認 |
|---|---|
| 最初のタイムスタンプが00:00ではない | 最初の行を修正し、タイトルを見直す |
| タイムスタンプの行が3行未満 | 内容を見直し、要件を満たす完全なリストを作れるか確認する |
| 時刻が重複しているか、前の時刻より早くなっている | 順番を修正し、長さを再計算する |
| 10秒未満のチャプターがある | その境界と前後の内容を見直す |
| 最後のチャプターの長さが不明 | 実際の動画の終了時刻を確認する |
| 字幕を利用できない | 自分で動画を見る |
| 指定した言語を利用できない | 失敗の内容と選択した言語を見直す |
| 保存された説明欄が下書きと異なる | 意図したバージョンに修正して保存する |
| 書式は要件を満たしているが、チャプターが表示されない | 所有者アカウントの権限を確認し、プレーヤーの結果を未解決として記録する |
字幕トラックがないことは、収集上の制約です。アカウントの利用権限に問題があることを示すものではありません。また、正しい公開文字起こしを取得できても、所有者アカウントの権限が確認できたことにはなりません。
文書に記載された確認項目をすべて満たしても、プレーヤーにチャプターが表示されない場合は、結果を未解決のまま記録します。確認済みのリストと、アカウントで確認した内容を保存してください。提供された資料は、考えられるすべての原因を示しているわけではありません。根拠なしに原因を決めないでください。
出典と参考資料
著者 Chronometrica · 更新日
ページの先頭へ ↑

