youtube-dl は、多数の動画サイトからコンテンツを取得し、ファイルに保存したり音声抽出・字幕取得などの後処理を行うコマンドラインツールです。
※コマンド名は youtube-dl(ハイフン)。youtube_dl は Python モジュール名です。
実務では「教育動画の社内配布用に自社権利コンテンツを取得」「検証用データの一括取得」「字幕・メタ情報の抽出」などに使います。※利用は各サイトの利用規約と著作権法を必ず遵守してください。
本コマンドの開発は停滞気味で、YouTubeのダウンロードはほとんど出来なくなっています。
後継の yt-dlp の使用を推奨します。
構文(Syntax)
# 基本
youtube-dl [GLOBAL_OPTIONS] [DOWNLOAD_OPTIONS] URL...
# 形式選択
youtube-dl -F URL # 取得可能フォーマット一覧
youtube-dl -f FORMAT URL # 指定フォーマットで取得
youtube-dl -f 'bestvideo+bestaudio/best' URL # 映像+音声の自動合成(要 ffmpeg)
# 出力テンプレート
youtube-dl -o '%(title)s.%(ext)s' URL
# 音声抽出(要 ffmpeg)
youtube-dl -x --audio-format mp3 --audio-quality 0 URL
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-F | 利用可能なフォーマット一覧を表示 | youtube-dl -F URL |
-f SELECTOR | フォーマット選択(複合指定/フォールバック可) | -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best' URL |
-o TEMPLATE | 出力ファイル名テンプレート | -o '%(playlist_title)s/%(playlist_index)02d-%(title)s.%(ext)s' |
-x --audio-format FMT | 音声抽出/MP3, M4A などに変換(要 ffmpeg) | -x --audio-format m4a URL |
--audio-quality Q | 音声品質(例: 0=最高、192K など) | --audio-quality 0 |
--write-sub --sub-lang LANGS | 字幕を取得(複数可、en,ja など) | --write-sub --sub-lang en,ja URL |
--embed-subs --embed-thumbnail | 字幕/サムネをファイルへ埋め込み(要 ffmpeg) | --embed-subs URL |
--add-metadata | タイトル/アーティスト等のメタデータ付与 | --add-metadata URL |
--download-archive FILE | 取得済みIDを記録し重複をスキップ | --download-archive downloaded.txt URL |
--yes-playlist / --no-playlist | URLがプレイリストのとき全件/単体のみ | --no-playlist URL |
--playlist-items ITEMS | 取得する項目番号(範囲/カンマ区切り) | --playlist-items 1-10,15 URL |
-r RATE | ダウンロード速度制限 | -r 2M |
-c --continue | 中断から再開 | -c URL |
-i --ignore-errors | 失敗を無視して続行 | -i URLS.txt |
--cookies FILE | ブラウザからCookiesを渡す | --cookies cookies.txt URL |
--proxy URL | プロキシ経由で取得 | --proxy http://127.0.0.1:8080 URL |
-q / -v | 静音 / 詳細ログ | -v URL |
-U | 自己アップデート(配布形態により不可の場合あり) | youtube-dl -U |
実行例
1) 最高画質の映像+音声をMP4で保存(Web再生互換)
説明: 映像・音声を別々に取得して結合します(ffmpeg 必須)。
コマンド:
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]' \
-o '%(title)s.%(ext)s' URL
2) プレイリストをディレクトリ分けで一括保存
説明: タイトルとインデックスで整然と保存します。
コマンド:
youtube-dl --yes-playlist \
-o '%(playlist_title)s/%(playlist_index)02d-%(title)s.%(ext)s' URL
3) 音声のみ抽出してMP3化(ポッドキャスト用)
説明: 変換品質を最高にし、メタデータも付与します。
コマンド:
youtube-dl -x --audio-format mp3 --audio-quality 0 --add-metadata URL
4) 字幕を取得して埋め込む(英/日)
説明: 取得+動画へ焼き込まず埋め込み(プレイヤーで切替可能、要 mp4/mkv)。
コマンド:
youtube-dl --write-sub --sub-lang en,ja --embed-subs -f 'bestvideo+bestaudio' URL
5) エラー例:ffmpeg 不在で結合/変換を試みる
説明: ポストプロセスに ffmpeg が必要です。
コマンド:
youtube-dl -f 'bestvideo+bestaudio' URL
出力例(例):
ERROR: ffprobe/avconv not found. Please install ffmpeg.
対処: パッケージマネージャ等で ffmpeg をインストールして再実行。
関連コマンド
yt-dlp: 活発にメンテされる派生。youtube-dl互換の操作感で機能拡張多数。ffmpeg: 映像/音声の結合・変換・埋め込み処理に必須。aria2c:--external-downloaderで外部ダウンローダとして併用可。curl/wget: 補助的な取得やAPI呼び出しに。
備考
- 法的/倫理面: ダウンロードは権利者の許諾がある場合、または自分のコンテンツ・ライセンス許諾済み素材など合法な用途に限定してください。サイトの利用規約・地域の著作権法に反する行為は行わないでください。
- フォーマット選択:
-Fで候補を確認 →-fにbestvideo+bestaudio/ 条件式(例:height<=720)を指定。 - 出力テンプレート: 代表キー
%(title)s,%(id)s,%(uploader)s,%(duration)s,%(playlist_index)sなど。 - 設定ファイル: 既定は
~/.config/youtube-dl/config(または/etc/youtube-dl.conf)。よく使うオプションを1行ずつ記述。 - 自己アップデート:
pipや配布パッケージで入れた場合はpip install -U youtube_dlやパッケージマネージャで更新します。 - ログインが必要なサイト:
--cookies(Netscape 形式)や-u/-pを利用。2要素認証や年齢確認のあるサイトは追加手順が必要な場合があります。 - 結合/変換: 映像+音声のマージ、字幕・サムネの埋め込み、音声抽出など多くの後処理に ffmpeg が必要です。
参考
- GitHub(公式リポジトリ): https://github.com/ytdl-org/youtube-dl
- README(オプション・書式・テンプレート): https://github.com/ytdl-org/youtube-dl/blob/master/README.md
- manページ(Debian/Ubuntu): https://manpages.debian.org/testing/youtube-dl/youtube-dl.1.en.html
- 出力テンプレート解説: https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template
- フォーマット選択ガイド: https://github.com/ytdl-org/youtube-dl/blob/master/README.md#format-selection
- ffmpeg 公式: https://ffmpeg.org/
- yt-dlp(関連プロジェクト): https://github.com/yt-dlp/yt-dlp

コメント