yt-dlpは、動画ページのメタ情報、字幕、音声などを取得できるコマンドラインツールです。
このページでは、YouTubeなどの動画を対象に、自分が権利を持つ動画、または利用許諾を得た素材を、文字起こしや字幕分析の前処理に使う方法を整理します。動画を集めること自体が目的ではなく、Whisperで文字起こししたり、字幕やチャットなどの公開データと組み合わせて分析したりするための準備として扱います。
この記事で扱う範囲
この記事では、次のような作業を扱います。
- yt-dlpで動画のメタ情報だけ確認する
- 許諾済み動画から音声ファイルを作り、Whisperの入力にする
- 字幕ファイルを取得し、テキスト分析の前処理に使う
- Pythonからyt-dlpを呼び出し、分析用のファイルを整理する
- つまずきやすいエラーと確認方法を整理する
動画や音声の再配布、権利者の許可がない素材の保存、利用規約に反する使い方をすすめるものではありません。YouTube Data APIで取得できる情報だけで足りる場合は、まず公式APIを使う方が扱いやすいです。
利用前に確認したいこと
yt-dlpは便利ですが、使い方によっては権利や利用規約に関わります。分析用途であっても、次の点は先に確認しておきます。
- 対象が自分の動画、または利用許諾を得た動画か
- 対象サービスの利用規約で許される範囲か
- 取得した字幕や音声を公開・再配布しない運用になっているか
- 公開記事では、字幕本文や発話内容を長文転載しない方針にしているか
- 個人情報、限定公開情報、権利者が意図しない利用につながらないか
このサイトでは、取得した素材そのものを見せるのではなく、文字起こし後の件数集計、語句の傾向、要約、時系列変化など、分析結果として扱うことを前提にしています。
yt-dlpとYouTube Data APIの使い分け
YouTube関連のデータ取得では、まず公式のYouTube Data APIで足りるかを確認します。公式APIで取れる情報と、yt-dlpで扱いやすい情報は少し違います。
| やりたいこと | 向いている方法 | 補足 |
|---|---|---|
| チャンネルの動画一覧を取得する | YouTube Data API | 公式APIで扱いやすい範囲です |
| タイトル、公開日、再生数などを取得する | YouTube Data API | APIキーとquotaの管理が必要です |
| 字幕ファイルを分析前処理に使う | 字幕APIまたはyt-dlp | 取得可否や言語の違いに注意します |
| 許諾済み動画の音声をWhisperに渡す | yt-dlp + ffmpeg | 権利・規約の確認が前提です |
| 音声をWAVに変換する | ffmpeg | yt-dlpとは別に環境構築が必要です |
公式APIで足りる処理は、公式APIを使う方が後から管理しやすいです。yt-dlpは、文字起こし前処理や字幕ファイルの確認など、分析用の入力データを整える場面で使います。
事前準備
ここでは、Python環境がある前提で進めます。まずyt-dlpをインストールします。
pip install yt-dlp音声変換を行う場合は、ffmpegも必要です。WindowsでのインストールとPATH設定は、次の記事で整理しています。
ffmpegのインストールとPATH設定(Windows)|yt-dlp・Whisper前提
まず動画情報だけ確認する
最初から音声や字幕を保存するのではなく、まず対象URLから取得できるメタ情報だけ確認します。
yt-dlp --skip-download --print "%(title)s | %(duration_string)s | %(uploader)s" "動画URL"--skip-download を付けると、動画本体を取得せずに情報だけ確認できます。分析対象の確認や、URLリストの整理ではこの使い方から始めると安全です。
許諾済み動画の音声をWhisper用にWAV保存する
Whisperで文字起こしする場合は、音声をWAVやMP3などのファイルにしておくと扱いやすいです。ここでは、分析対象として利用できることを確認済みの動画だけを対象にします。
yt-dlp -x --audio-format wav -o "audio/%(id)s.%(ext)s" "動画URL"-x は音声抽出、--audio-format wav はWAV形式への変換、-o は保存先とファイル名の指定です。複数ファイルを扱う場合は、動画IDをファイル名に入れておくと後から対応関係を確認しやすくなります。
文字起こしの流れは、次の記事でも整理しています。
WhisperでYouTube音声を文字起こしして要約する方法|Pythonサンプル付き
字幕ファイルを分析用に取得する
動画に字幕がある場合は、音声から文字起こしする前に字幕を確認するとよいです。字幕は、話題の抽出や要約、時系列での発話分析に使えます。
yt-dlp --skip-download --write-subs --write-auto-subs --sub-langs "ja,en" -o "subs/%(id)s.%(ext)s" "動画URL"自動字幕は誤認識を含むことがあります。分析に使う場合は、字幕の種類、言語、取得日をメモしておくと、結果の読み取りで迷いにくくなります。
字幕取得だけを確認したい場合は、次の記事も参考になります。
youtube-transcript-apiでYouTube字幕を取得する方法|Pythonサンプル付き
Pythonからyt-dlpを使う
URLを複数扱う場合や、取得結果をCSVにまとめたい場合は、Pythonからyt-dlpを呼び出すと管理しやすくなります。
from yt_dlp import YoutubeDL
url = "動画URL"
options = {
"skip_download": True,
"quiet": True,
}
with YoutubeDL(options) as ydl:
info = ydl.extract_info(url, download=False)
print(info.get("id"))
print(info.get("title"))
print(info.get("duration"))まずは download=False でメタ情報だけ確認します。対象URL、タイトル、動画ID、長さなどを表にしておくと、後で字幕や音声ファイルと紐づけやすくなります。
複数URLを扱うときの考え方
複数の動画を扱う場合は、最初にURLリストを作り、取得済みかどうかを管理します。
- 対象URL
- 動画ID
- タイトル
- 取得したファイル名
- 取得日
- 利用許諾や権利確認のメモ
このような管理表を作ると、どの音声ファイルがどの動画に対応しているか、あとから確認しやすくなります。公開記事で使う場合も、元データの条件を説明しやすくなります。
出力ファイルを確認する
取得後は、ファイルが作成されたことだけでなく、分析に使える形式になっているかを確認します。
- 音声ファイルが想定フォルダに保存されているか
- ファイル名に動画IDなどの識別子が入っているか
- Whisperで読み込める形式か
- 字幕ファイルの言語が想定通りか
- 空ファイルや極端に短いファイルが混ざっていないか
この確認を飛ばすと、文字起こしやテキスト分析の段階で原因が分かりにくくなります。とくに複数動画を扱う場合は、前処理の段階で小さく確認する方が楽です。
つまずきやすいポイント
| 症状 | 確認すること |
|---|---|
| ffmpegが見つからない | ffmpegのインストールとPATH設定を確認する |
| 字幕が取得できない | 対象動画に字幕があるか、言語指定が合っているか確認する |
| 一部URLだけ失敗する | 動画の公開状態、年齢制限、地域制限、ログイン要否を確認する |
| ファイル名が分かりにくい | -o で動画IDや日付を含む命名にする |
| 分析結果がずれる | 取得日、字幕種類、自動字幕かどうかを記録する |
yt-dlpや対象サービス側の仕様は変わることがあります。手元で動いたコードでも、時間が経つとオプションや取得結果が変わる場合があります。
次に読む記事
- YouTubeの情報を取得する方法まとめ|公式APIと非公式ライブラリの使い分け
- YouTube Data API v3入門|APIキー発行からPythonで動画情報を取得するまで
- ffmpegのインストールとPATH設定(Windows)|yt-dlp・Whisper前提
- WhisperでYouTube音声を文字起こしして要約する方法|Pythonサンプル付き
- youtube-transcript-apiでYouTube字幕を取得する方法|Pythonサンプル付き
まとめ
yt-dlpは、許諾済み動画の音声や字幕を分析用に整えるときに便利なツールです。Whisperの文字起こし、字幕のテキスト分析、動画IDと取得ファイルの管理など、前処理の段階で役立ちます。
一方で、対象素材の権利や利用規約を確認せずに使うと問題につながります。この記事では、保存そのものではなく、分析前処理としての使い方に絞って整理しました。公式APIで足りる情報はYouTube Data APIを使い、音声や字幕が必要な場合だけ、用途と範囲を決めて扱うのがよいと思います。