はい、承知いたしました。yt-dlpとffmpegを使用して動画をダウンロードし、特にMP3への変換に焦点を当てた詳細な解説記事を記述します。約5000語を目指します。
超便利!yt-dlpとffmpegで動画をダウンロードしてMP3などに変換する徹底解説
インターネット上には様々な動画コンテンツが溢れています。YouTubeはもちろん、ニコニコ動画、Twitter、Instagram、TikTokなど、無数のプラットフォームが存在します。これらの動画をオフラインで視聴したい、あるいは動画から音声だけを抽出して音楽プレイヤーで楽しみたい、といったニーズは少なくありません。
ブラウザの拡張機能やオンラインツールでも動画ダウンロードや変換は可能ですが、多くのプラットフォームに対応し、高い柔軟性と安定性を提供するのは、やはりコマンドラインツールです。その中でも特に強力で広く使われているのが、yt-dlp と ffmpeg の組み合わせです。
本記事では、この強力なコンビ「yt-dlp」と「ffmpeg」を使い、動画をダウンロードし、特にMP3などの音声ファイルに変換する方法を、初心者の方にも分かりやすいように、インストールから基本的な使い方、そしてより高度なテクニックまで、詳細に解説していきます。
なぜ yt-dlp と ffmpeg なのか?
世の中には数多くの動画ダウンロードツールや変換ツールが存在します。その中で、なぜ私たちは yt-dlp と ffmpeg を推奨するのでしょうか?
- 圧倒的な対応サイト数: yt-dlpは、元のプロジェクトであるyoutube-dlから派生し、さらに多くの動画サイトに対応しています。YouTubeだけでなく、Vimeo、Dailymotion、そしてTwitterやInstagramなどのソーシャルメディア、さらにはニュースサイトや教育プラットフォームなど、非常に幅広いサイトから動画情報を取得し、ダウンロードできます。サイト側の仕様変更にも素早く対応するため、常に最新の状態に保つことで多くのサイトで利用可能です。
- 高い柔軟性とカスタマイズ性: コマンドラインツールであるため、非常に細かな設定が可能です。ダウンロードする動画の解像度やフォーマットの選択、音声品質の指定、出力ファイル名の自動命名規則の設定、プレイリストの一括ダウンロード、ダウンロードの再開、帯域制限など、GUIツールでは難しい、かゆいところに手が届く設定ができます。
- 安定性と信頼性: 長年開発が続けられており、多くのユーザーに利用されています。大規模なダウンロードやバッチ処理を行う際にも安定して動作し、エラーが発生した場合のトラブルシューティングもしやすい構造になっています。
- ffmpeg との連携: yt-dlp自身は動画サイトからストリームを取得するのが主な役割ですが、取得した動画や音声の「処理」には ffmpeg を利用します。複数のストリーム(例えば、高画質の映像ストリームと高音質の音声ストリームは別々に提供されることがあります)を結合(多重化/muxing)したり、取得した音声ファイルを別の形式(例: M4AからMP3)に変換したり、動画を音声に変換したりといった作業を、yt-dlp が内部で ffmpeg を呼び出して自動的に行ってくれます。これにより、ダウンロードから変換までの一連の作業を一つのコマンドで完結させることができます。
- オープンソースで無料: yt-dlpもffmpegも、どちらもオープンソースソフトウェアであり、無料で利用できます。開発がコミュニティによって支えられており、活発に更新されています。
これらの理由から、yt-dlpとffmpegの組み合わせは、高度な動画ダウンロード・変換ニーズに応えるための非常に強力なソリューションと言えます。
始める前に:著作権について
インターネット上の動画コンテンツには、著作権が存在します。個人的な利用の範囲を超える無断での複製、配布、改変などは、著作権法に違反する可能性があります。本記事で解説する技術は、あくまで技術的な利用方法を示すものであり、著作権法を遵守した、個人的な視聴やバックアップなどの範囲でのみ利用してください。 特に、ダウンロードしたコンテンツを不特定多数に公開したり、商用目的で利用したりすることは絶対に避けてください。利用は自己責任でお願いします。
準備:yt-dlp と ffmpeg のインストール
yt-dlpとffmpegを利用するには、まずこれらのツールをPCにインストールする必要があります。インストール方法はOSによって異なります。ここでは主要なOS(Windows, macOS, Linux)でのインストール方法を解説します。
どちらのツールも、コマンドプロンプト(Windows)またはターミナル(macOS/Linux)から実行できるように、「PATH」と呼ばれる環境変数に登録することが推奨されます。これにより、ツールの実行ファイルがあるディレクトリに移動しなくても、どのディレクトリからでもコマンド名だけでツールを起動できるようになります。
Windows でのインストール
Windowsでは、実行ファイルをダウンロードして手動でPATHに追加する方法と、パッケージマネージャーを利用する方法があります。パッケージマネージャーを利用する方が簡単でおすすめです。
方法1:パッケージマネージャー (Chocolatey または Scoop) を利用する(推奨)
Chocolatey や Scoop は、Windows向けのパッケージマネージャーです。LinuxのaptやHomebrewのように、コマンド一つでソフトウェアのインストールやアップデートができます。
-
Chocolatey を利用する場合:
Chocolateyがインストールされていない場合は、公式サイト (https://chocolatey.org/install) を参照してインストールしてください。インストール後、管理者権限でコマンドプロンプトまたはPowerShellを開き、以下のコマンドを実行します。bash
choco install yt-dlp ffmpegこれにより、yt-dlpとffmpegの両方がダウンロードされ、自動的にPATHに追加されます。
-
Scoop を利用する場合:
Scoopがインストールされていない場合は、公式サイト (https://scoop.sh/) を参照してインストールしてください。インストール後、PowerShellを開き、以下のコマンドを実行します。bash
scoop install yt-dlp ffmpegこちらもyt-dlpとffmpegがダウンロードされ、自動的にPATHに追加されます。
方法2:手動でダウンロードしPATHを追加する
パッケージマネージャーを使わない場合、それぞれの公式サイトから実行ファイルをダウンロードし、手動でPATHに追加します。
-
yt-dlp のダウンロード:
yt-dlpのリリースページ (https://github.com/yt-dlp/yt-dlp/releases) にアクセスし、最新バージョンのyt-dlp.exe
をダウンロードします。 -
ffmpeg のダウンロード:
ffmpegの公式サイト (https://ffmpeg.org/download.html) にアクセスし、Windowsのビルドを提供しているリンク(例: Gyan’s Builds や BtbN Builds)から最新バージョンの実行ファイル(zipファイルなど)をダウンロードします。ダウンロードしたzipファイルを解凍します。解凍されたフォルダの中にbin
というフォルダがあり、その中にffmpeg.exe
やffprobe.exe
といった実行ファイルがあります。 -
実行ファイルの配置とPATHの追加:
ダウンロードしたyt-dlp.exe
と、解凍したffmpegフォルダ内のbin
フォルダを、PC内の任意の場所(例:C:\Tools\yt-dlp
やC:\Tools\ffmpeg
)に配置します。次に、これらのフォルダへのパスをWindowsの環境変数Path
に追加します。- Windowsの検索バーで「環境変数」と入力し、「システム環境変数の編集」を開きます。
- 「システムのプロパティ」ウィンドウが表示されるので、「詳細設定」タブの「環境変数」ボタンをクリックします。
- 「環境変数」ウィンドウが表示されます。システム環境変数リストの中から
Path
を選択し、「編集」をクリックします。 - 「環境変数の編集」ウィンドウが表示されます。「新規」をクリックし、yt-dlp.exe があるフォルダのパス(例:
C:\Tools\yt-dlp
)と、ffmpegのbin
フォルダのパス(例:C:\Tools\ffmpeg\bin
)をそれぞれ追加します。 - すべてのウィンドウを「OK」で閉じます。
注意: PATHの変更を有効にするには、コマンドプロンプトやPowerShellを一度閉じてから再度開き直す必要があります。
macOS でのインストール
macOSでは、Homebrewというパッケージマネージャーを利用するのが最も簡単でおすすめです。
-
Homebrew のインストール:
Homebrewがインストールされていない場合は、公式サイト (https://brew.sh/index_ja) にアクセスし、そこに記載されているコマンドをターミナルで実行してインストールしてください。 -
yt-dlp と ffmpeg のインストール:
Homebrewがインストールされたら、ターミナルを開き以下のコマンドを実行します。bash
brew install yt-dlp ffmpegこれにより、yt-dlpとffmpegの両方がダウンロードされ、自動的にインストール、設定されます。
Linux でのインストール
多くのLinuxディストリビューションでは、標準のパッケージマネージャーでyt-dlpとffmpegが提供されています。
-
Debian/Ubuntu:
bash
sudo apt update
sudo apt install yt-dlp ffmpeg -
Fedora:
bash
sudo dnf install yt-dlp ffmpeg -
Arch Linux:
bash
sudo pacman -S yt-dlp ffmpeg
使用しているディストリビューションに合わせて、適切なパッケージマネージャーのコマンドを実行してください。
インストール確認
インストールが完了したら、新しいコマンドプロンプトまたはターミナルを開き、以下のコマンドを実行して、それぞれが正しくインストールされ、PATHが通っているか確認します。
bash
yt-dlp --version
ffmpeg -version
それぞれのバージョン情報が表示されれば成功です。もし「’yt-dlp’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」のようなエラーが出る場合は、PATHの設定が正しくできていない可能性があります。
これで、yt-dlpとffmpegを使う準備が整いました。
yt-dlp の基本的な使い方
yt-dlpはコマンドラインから yt-dlp [オプション] [URL]
という形式で実行します。最も基本的な使い方は、URLを指定して動画をダウンロードすることです。
bash
yt-dlp https://www.youtube.com/watch?v=xxxxxxxxxxx
このコマンドを実行すると、yt-dlpは指定されたURLの動画情報を取得し、デフォルト設定で動画をダウンロードします。デフォルトでは、可能な限り高画質で、映像と音声が一緒になったフォーマットを選択し、現在のディレクトリに動画ファイルを保存します。ファイル名は動画のタイトルやIDに基づいて自動的に決定されます。
ダウンロード中に、進捗状況(ダウンロード速度、完了率、残り時間など)がターミナルに表示されます。
音声だけをダウンロードする (-x オプション)
動画全体ではなく、音声だけが必要な場合、-x
オプション(--extract-audio
)を使用します。
bash
yt-dlp -x https://www.youtube.com/watch?v=xxxxxxxxxxx
このコマンドを実行すると、yt-dlpは動画から音声ストリームのみを抽出し、音声ファイルとして保存します。デフォルトの音声フォーマットは、元動画で利用されている最適なオーディオ形式(多くの場合M4AやOpus)になります。この際、yt-dlpは抽出した音声ストリームをそのまま保存するか、または必要に応じて ffmpeg
を利用して他の形式に変換します。
MP3形式で音声ダウンロードする (–audio-format mp3)
多くのユーザーにとって、動画の音声を抽出する際の目的は、音楽プレイヤーで簡単に再生できるMP3形式にすることでしょう。yt-dlpは -x
オプションと組み合わせて --audio-format
オプションを使用することで、直接指定したフォーマットに変換して保存できます。
MP3形式で保存するには、以下のようにコマンドを実行します。
bash
yt-dlp -x --audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
このコマンドは以下の処理を行います:
yt-dlp
が指定されたURLの動画情報を解析し、最適な音声ストリームを探します。-x
オプションにより、音声ストリームをダウンロードまたは抽出することを決定します。--audio-format mp3
オプションにより、抽出した音声をMP3形式に変換することを指定します。yt-dlp
はダウンロードした音声ストリームを一時ファイルとして保存し、その後ffmpeg
を呼び出してこの一時ファイルをMP3形式に変換します。- 変換されたMP3ファイルが指定された出力先に保存され、一時ファイルは削除されます。
これにより、ダウンロードからMP3への変換までが自動で行われます。これは、yt-dlpとffmpegの連携の最も一般的な例です。
音声品質を指定する (–audio-quality)
MP3に変換する際に、音声の品質(ビットレート)を指定することもできます。--audio-quality
オプションを使用します。
MP3の場合、品質はビットレートで指定するのが一般的です。例えば、CD並みの高音質とされる320kbpsを指定するには、以下のようにします。
bash
yt-dlp -x --audio-format mp3 --audio-quality 320K https://www.youtube.com/watch?v=xxxxxxxxxxx
320K
は320キロビット毎秒を意味します。他の一般的なビットレートとしては、192K(標準的な高音質)、128K(標準音質)などがあります。
また、MP3ではVBR(Variable Bitrate:可変ビットレート)という方式もよく使われます。これは、音声の内容に応じてビットレートを自動的に調整することで、ファイルサイズを抑えつつ品質を保つエンコード方式です。VBRの品質レベルは0から9の数値で指定されることが多く、数値が小さいほど高品質になります。最高品質のVBRを指定する場合、--audio-quality 0
とします。
bash
yt-dlp -x --audio-format mp3 --audio-quality 0 https://www.youtube.com/watch?v=xxxxxxxxxxx
特にこだわりがなければ、--audio-quality 0
(最高品質VBR)または --audio-quality 320K
(最高品質CBR)を指定するのがおすすめです。--audio-quality
オプションを省略した場合、yt-dlpは通常、品質を指定しないか、デフォルトの品質(多くの場合はVBR 5程度、または元音声に近いビットレート)でエンコードを行います。
出力ファイル名を指定する (-o オプション)
デフォルトのファイル名も便利ですが、自分で分かりやすい名前にしたい場合や、大量にダウンロードする際に命名規則を統一したい場合があります。-o
オプション(--output
)を使用すると、出力ファイル名や保存先ディレクトリを指定できます。
bash
yt-dlp -o "My Audio.mp3" -x --audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
上記コマンドは、ダウンロードしたMP3ファイルを My Audio.mp3
という名前で現在のディレクトリに保存します。
-o
オプションでは、特別な変数を使用してファイル名を自動生成させることができます。これは、複数の動画をダウンロードする際に非常に便利です。よく使われる変数には以下のようなものがあります。
%(title)s
: 動画のタイトル%(id)s
: 動画のID%(uploader)s
: 投稿者の名前%(ext)s
: 拡張子(例:mp4
,mp3
)%(upload_date)s
: アップロード日 (YYYYMMDD形式)%(playlist_index)s
: プレイリスト内のインデックス番号 (プレイリストの場合)
これらの変数を組み合わせることで、柔軟なファイル名を指定できます。例えば、「[投稿者名] – [動画タイトル].[拡張子]」という形式で保存したい場合は、以下のように指定します。
bash
yt-dlp -o "%(uploader)s - %(title)s.%(ext)s" https://www.youtube.com/watch?v=xxxxxxxxxxx
MP3として保存する場合、拡張子は通常 .mp3
になるため、-x --audio-format mp3
オプションと組み合わせる際は、ファイル名の拡張子を .mp3
と固定してしまう方が確実です。
bash
yt-dlp -o "%(uploader)s - %(title)s.mp3" -x --audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
さらに、サブディレクトリを作成してそこに保存することも可能です。例えば、「[投稿者名]」というフォルダを作成し、その中に「[動画タイトル].mp3」として保存したい場合は、以下のように指定します。
bash
yt-dlp -o "%(uploader)s/%(title)s.mp3" -x --audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
この場合、コマンドを実行したディレクトリに投稿者名のフォルダが作成され、その中にMP3ファイルが保存されます。
複数の動画/URLをまとめて処理する
yt-dlpは複数のURLをまとめて処理することも可能です。コマンドの最後に複数のURLをスペース区切りで並べるだけです。
bash
yt-dlp -x --audio-format mp3 URL1 URL2 URL3 ...
あるいは、URLのリストをテキストファイルに記述し、-a
オプション(--batch-file
)でそのファイルを指定することもできます。これは、ダウンロードしたい動画が大量にある場合に便利です。
まず、ダウンロードしたい動画のURLを記述したテキストファイル(例: urls.txt
)を作成します。ファイルには1行に1つのURLを記述します。
https://www.youtube.com/watch?v=video_id_1
https://vimeo.com/video_id_2
https://twitter.com/user/status/tweet_id_3
...
そして、以下のコマンドを実行します。
bash
yt-dlp -a urls.txt -x --audio-format mp3
これにより、ファイルにリストされたすべてのURLに対して、音声抽出とMP3変換が順番に実行されます。
yt-dlp の応用的な使い方
これまでに紹介した基本的な使い方だけでも十分便利ですが、yt-dlpにはさらに多くのオプションがあり、より高度なニーズに応えることができます。
利用可能なフォーマットを確認する (-F オプション)
特定の動画でダウンロード可能な映像や音声のフォーマット、解像度、ビットレートなどを詳細に知りたい場合は、-F
オプション(--list-formats
)を使用します。
bash
yt-dlp -F https://www.youtube.com/watch?v=xxxxxxxxxxx
このコマンドはダウンロードは行わず、利用可能なフォーマットの一覧を表示します。出力は以下のような形式になります(表示される情報はサイトや動画によって異なります)。
“`
ID EXT RESOLUTION FPS CH FILESIZE TBR PROTOPIA VCODEC VBR ACODEC ABR
…
249 webm audio only opus 1.73MiB 53k https audio only 53k opus
250 webm audio only opus 2.42MiB 75k https audio only 75k opus
251 webm audio only opus 4.34MiB 134k https audio only 134k opus
140 m4a audio only mp4a 4.28MiB 129k https audio only 129k mp4a
…
137 mp4 1920×1080 30 – – https avc1 –
248 webm 1920×1080 30 – – https vp9 –
271 webm 2560×1440 30 – – https vp9 –
…
22 mp4 1280×720 30 vid 10.87MiB ? https avc1 – mp4a 128k # 映像と音声が一体
18 mp4 640×360 30 vid 4.84MiB ? https avc1 – mp4a 96k # 映像と音声が一体
…
“`
このリストには各フォーマットに「ID」が付与されています。ID 140
はM4A形式の音声のみ、ID 251
はOpus形式の音声のみ、ID 137
はMP4形式の1080p映像のみ、ID 22
は720p映像と128kbps音声が一体になったMP4、といった情報が読み取れます。
最近の多くの動画サイト(特にYouTube)では、高画質・高音質を提供するために、映像ストリームと音声ストリームが別々に配信されています。-F
の出力で audio only
と書かれている行が音声ストリーム、audio only
がなく FILESIZE
や TBR
が -
となっている行は映像ストリームのみです。ID 22
や 18
のように、映像と音声が一体になっているものもありますが、これらは最新・最高画質のものではないことが多いです。
yt-dlpがデフォルトでダウンロードする場合、映像と音声が分離している場合はそれぞれ最適なものをダウンロードし、ffmpeg
を使って自動的に結合(多重化)してくれます。
特定のフォーマットを指定してダウンロードする (-f オプション)
-F
オプションで確認したIDを使用して、ダウンロードしたい特定のフォーマットを指定できます。-f
オプション(--format
)を使用します。
例えば、1080pのMP4映像 (ID 137
) とM4A音声 (ID 140
) をダウンロードして結合したい場合、以下のように指定します。
bash
yt-dlp -f 137+140 https://www.youtube.com/watch?v=xxxxxxxxxxx
+
記号で映像IDと音声IDを結合して指定します。yt-dlpはこれらのストリームをダウンロードし、ffmpeg
を利用して一つの動画ファイルに結合します。
映像と音声が一体になっているフォーマット(例: ID 22
)をダウンロードしたい場合は、そのIDだけを指定します。
bash
yt-dlp -f 22 https://www.youtube.com/watch?v=xxxxxxxxxxx
複数の代替フォーマットを指定することもできます。例えば、最高の映像と音声をダウンロードしたいが、それらが存在しない場合は720pの映像と最高の音声をダウンロードしたい、といった場合です。カンマ区切りで優先順位の高い順に指定します。
bash
yt-dlp -f bestvideo+bestaudio,best --merge-output-format mp4 https://www.youtube.com/watch?v=xxxxxxxxxxx
bestvideo+bestaudio
はyt-dlpが自動的に最適な映像と音声ストリームを選択して結合します。これが利用できない場合、best
は映像と音声が一体になっているフォーマットの中で最も高品質なものを選択します。--merge-output-format mp4
は、分離したストリームを結合する際に、出力フォーマットをMP4に指定しています。
この -f
オプションは非常に強力で、様々な条件(解像度、コーデック、ファイルサイズなど)でフォーマットをフィルタリングして指定することも可能です。例えば、720p以下の映像で最もファイルサイズの小さいものと、最高の音声を組み合わせたい場合は、以下のように指定します。
bash
yt-dlp -f "bestvideo[height<=720]+bestaudio" --merge-output-format mp4 https://www.youtube.com/watch?v=xxxxxxxxxxx
角括弧 []
の中に条件を記述します。利用可能な条件は -F
オプションの出力に表示される情報(RESOLUTION
、VCODEC
、FILESIZE
、ABR
など)です。
MP3変換におけるフォーマット選択の考慮
MP3に変換する場合、通常は動画全体をダウンロードする必要はありません。-x
オプションで音声のみを抽出します。この際、yt-dlpはデフォルトで最も高品質な音声ストリームを選択します。元の音声ストリームがM4AであろうとOpusであろうと、--audio-format mp3
を指定していれば、yt-dlpがffmpegを使ってMP3に変換してくれます。
したがって、MP3変換が目的であれば、-x --audio-format mp3
を使うのが最も簡単で、-f
オプションで特定の音声フォーマットIDを指定する必要はほとんどありません。yt-dlpに最適な音声ストリームの選択を任せるのが良いでしょう。
ただし、もし何らかの理由で特定の音声ストリーム(例えば、ID 140
のM4A)をダウンロードしてからMP3に変換したい場合は、以下のように-f
と -x
を組み合わせることも 理論上は可能 ですが、冗長です。
“`bash
これは推奨されない方法です。通常は -x –audio-format mp3 だけで十分です。
yt-dlp -f 140 -x –audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
``
-f 140でM4Aを指定し、
-x –audio-format mp3でそれをMP3に変換する、という指示になります。しかし、
-x –audio-format mp3自体が「音声だけを抽出し、MP3に変換する。その際、yt-dlpが最適な音声ストリームを選択する」という意味なので、
-f 140は余計な制約を課していることになります。最適な方法は、やはり
-x –audio-format mp3` です。
プレイリストをダウンロードする
yt-dlpはプレイリストのダウンロードも簡単にできます。プレイリストのURLを指定するだけです。
bash
yt-dlp https://www.youtube.com/playlist?list=PL...
デフォルトではプレイリストに含まれるすべての動画がダウンロードされます。これも -x --audio-format mp3
と組み合わせることで、プレイリスト全体の音声をMP3としてダウンロードできます。
bash
yt-dlp -x --audio-format mp3 https://www.youtube.com/playlist?list=PL...
プレイリストの項目を限定することもできます。
-
特定の範囲の動画のみダウンロード (
--playlist-items
): 例: 10番目から20番目までbash
yt-dlp --playlist-items 10-20 -x --audio-format mp3 https://www.youtube.com/playlist?list=PL... -
特定のインデックスの動画のみダウンロード (
--playlist-items
): 例: 1番目、5番目、9番目bash
yt-dlp --playlist-items 1,5,9 -x --audio-format mp3 https://www.youtube.com/playlist?list=PL... -
既にダウンロード済みの動画をスキップする (
--download-archive
): プレイリストの内容が更新された際に、追加された動画だけをダウンロードしたい場合に便利です。ダウンロードした動画のIDを記録するテキストファイルを指定します。bash
yt-dlp --download-archive downloaded.txt -x --audio-format mp3 https://www.youtube.com/playlist?list=PL...downloaded.txt
というファイルが存在しない場合は新しく作成され、ダウンロードが完了した動画のIDが追記されていきます。次回同じコマンドを実行する際に、このファイルにIDが記録されている動画はスキップされます。
メタデータを埋め込む (–add-metadata)
ダウンロードした音声ファイル(特にMP3)に、動画のタイトル、投稿者、サムネイル(アートワークとして)、アップロード日などのメタデータを埋め込むことができます。これにより、音楽プレイヤーなどで表示が豊かになります。この機能はffmpegのffprobe
というツールを利用するため、ffmpegが正しくインストールされている必要があります。
メタデータを埋め込むには、--add-metadata
オプションを使用します。
bash
yt-dlp --add-metadata -x --audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
yt-dlpは可能な限り多くの情報を取得し、ffmpegを使って出力ファイルにメタデータとして書き込みます。特に、サムネイル画像が音声ファイルのアートワークとして埋め込まれるのは非常に便利です。
ffmpeg へのカスタム引数を渡す (–postprocessor-args)
--audio-format mp3
のようにyt-dlpに組み込まれている変換機能は便利ですが、ffmpegにはさらに詳細なエンコード設定や様々な処理機能があります。yt-dlpはダウンロード後の処理(ポストプロセッシング)としてffmpegを呼び出す際に、ユーザーが任意の引数を渡せるようになっています。これが --postprocessor-args
オプションです。
例えば、MP3エンコードの際に、yt-dlpの --audio-quality
オプションでは指定できないような、より低レベルなffmpegエンコーダー(libmp3lameなど)のオプションを渡したい場合などに利用できます。ただし、このオプションを使うにはffmpegのコマンドラインオプションに関する知識が必要になります。
--postprocessor-args
は、ポストプロセッサーの種類(この場合はオーディオ抽出/変換なので NA:
または ExtractAudio:
)と、それに続くffmpegの引数を指定します。
例:libmp3lame
エンコーダーで、特定のVBRプリセット(VBR-lowなど)を指定したい場合(yt-dlpの--audio-quality
と重複するため通常は使いませんが、例として)。
“`bash
この例は複雑であり、通常 –audio-quality 0 で十分です。
あくまで postprocessor-args の使い方の例として示します。
yt-dlp -x –audio-format mp3 –postprocessor-args “NA:-codec:a libmp3lame -q:a 0” https://www.youtube.com/watch?v=xxxxxxxxxxx
“`
NA:
またはExtractAudio:
: オーディオ抽出/変換のポストプロセッサーに引数を渡すことを示します。-codec:a libmp3lame
: 音声エンコーダーとしてlibmp3lameを使用することを指定します。-q:a 0
: libmp3lameのVBR品質レベルを0(最高品質)に設定します。
このように、--postprocessor-args
を使うとffmpegの機能を最大限に活用できますが、ffmpegのコマンドラインオプションについて学習する必要があります。
また、このオプションを使って、ダウンロードした音声ファイルに対してffmpegで別の処理(例えば、音量正規化やトリミングなど)を行うことも技術的には可能ですが、少し複雑になります。通常は、yt-dlpでダウンロード・変換した後、別途ffmpegコマンドを実行する方が分かりやすいかもしれません。
設定ファイルを使う (yt-dlp.conf)
毎回コマンドラインで多くのオプションを指定するのは手間がかかります。よく使うオプションは、設定ファイルに記述しておくことができます。yt-dlpは起動時に特定の場所にある yt-dlp.conf
というファイルから設定を読み込みます。
設定ファイルの場所はOSによって異なりますが、通常はユーザーのホームディレクトリ内の以下のパスに配置します。
- Windows:
%APPDATA%\yt-dlp\yt-dlp.conf
- macOS:
~/.config/yt-dlp/yt-dlp.conf
- Linux:
~/.config/yt-dlp/yt-dlp.conf
設定ファイルには、コマンドラインオプションを1行に1つ記述します。#
で始まる行はコメントとして無視されます。
例えば、常にMP3形式で、最高品質VBR、メタデータ埋め込み、特定の出力先フォルダに保存したい場合、yt-dlp.conf
に以下のように記述できます。
“`conf
音声のみを抽出
-x
MP3形式に変換
–audio-format mp3
最高品質VBR
–audio-quality 0
メタデータを埋め込む
–add-metadata
出力ファイル名を指定(例: Downloads/Audio/投稿者/タイトル.mp3)
-o “~/Downloads/Audio/%(uploader)s/%(title)s.mp3”
–download-archive を使ってダウンロード済みをスキップする場合
–download-archive “~/Downloads/Audio/downloaded.txt”
“`
設定ファイルにこれらのオプションを記述しておけば、以降は単に yt-dlp [URL]
または yt-dlp -a urls.txt
を実行するだけで、設定ファイルに記述されたオプションが自動的に適用されます。コマンドラインで指定したオプションは、設定ファイルのオプションよりも優先されます。
これにより、日常的な使用が非常に楽になります。
その他の便利なオプション
--limit-rate <速度>
: ダウンロード速度を制限します。例:--limit-rate 100K
(100KB/s)、--limit-rate 1M
(1MB/s)。帯域幅を使い切らないようにしたい場合に便利です。--sleep-interval <秒>
: 各ダウンロードの間に指定した秒数だけ待機します。連続して大量のダウンロードを行う際に、サイトへの負荷を軽減できます。例:--sleep-interval 5
(5秒待機)。--verbose
または-v
: 詳細な処理ログを表示します。エラーが発生した場合や、yt-dlpがどのような判断でフォーマットを選択しているかなどを確認するのに役立ちます。--cookies <ファイル>
: ログインが必要なサイトなどで使用できるクッキーファイルを指定します。ブラウザからクッキーをエクスポートして利用します。--username <ユーザー名>
,--password <パスワード>
: 一部のサイトでユーザー名とパスワードによる認証に使用します。--netrc
:~/.netrc
ファイルに記述されたログイン情報を使用します。パスワードをコマンドラインに直接入力したくない場合に安全です。--ignore-errors
: エラーが発生しても処理を中断せず、次の動画の処理に進みます。バッチ処理で一部の動画が失敗しても全体を止めたくない場合に便利です。--keep-video
:-x
オプションで音声抽出を行う際に、変換元の動画/音声ファイルも削除せずに残しておきます。デバッグなどに便利です。
ffmpeg を単体で使う(yt-dlpを使わない場合)
yt-dlpで動画をダウンロードした後、yt-dlpの機能を使わずに別途ffmpegコマンドで変換を行うことも可能です。これは、yt-dlpでは対応していない複雑な変換を行いたい場合や、既に持っている動画ファイルを変換したい場合に役立ちます。
基本的なffmpegの使い方は以下の通りです。
bash
ffmpeg -i 入力ファイル名 出力ファイル名
-i 入力ファイル名
: 入力ファイルを指定します。出力ファイル名
: 出力ファイルを指定します。ffmpegは出力ファイルの拡張子を見て、自動的にフォーマットを判断します。
例:ダウンロードした video.mp4
を audio.mp3
に変換する
bash
ffmpeg -i video.mp4 audio.mp3
このコマンドを実行すると、ffmpegは video.mp4
を読み込み、音声ストリームをMP3形式でエンコードし、audio.mp3
というファイルに保存します。デフォルトのエンコード設定(ビットレートなど)が使用されます。
MP3変換の詳細設定
ffmpegでMP3変換を行う際、エンコードの詳細設定(ビットレート、エンコーダーなど)を指定することも可能です。
-
特定のビットレート (CBR) を指定:
-ab
オプションを使用します。bash
ffmpeg -i video.mp4 -ab 320k audio_320k.mp3320k
は320kbpsを意味します。 -
品質を指定 (VBR):
-q:a
オプションや-V
オプション(libmp3lameの場合)を使用します。通常、MP3の場合はlibmp3lameエンコーダーが使われ、-V
オプションで0(最高品質)から9(最低品質)のVBR品質を指定します。bash
ffmpeg -i video.mp4 -vn -acodec libmp3lame -V 0 audio_v0.mp3-vn
: 映像ストリームを含めない(音声のみを抽出する)ことを指定します。-acodec libmp3lame
: 音声エンコーダーとしてlibmp3lameを明示的に指定します。(多くの場合、指定しなくてもMP3出力なら自動選択されますが、明示すると確実です)-V 0
: VBR品質レベルを0(最高品質)に設定します。
-
メタデータを埋め込む:
-map_metadata
オプションや-metadata
オプションを使用します。“`bash
元ファイルにあるメタデータをすべて引き継ぐ(可能な場合)
ffmpeg -i input.mp4 -map_metadata 0 -vn -acodec libmp3lame -V 0 output.mp3
任意のメタデータを手動で指定
ffmpeg -i input.mp4 -vn -acodec libmp3lame -V 0 -metadata artist=”アーティスト名” -metadata title=”曲名” output.mp3
“`
このように、ffmpeg単体でも柔軟な変換が可能ですが、元の動画ファイルを取得する手間や、映像と音声が分離している場合の処理などを考えると、yt-dlpの --audio-format mp3
機能が非常に効率的であることが分かります。yt-dlpは内部でこれらのffmpegコマンドを適切に組み合わせて実行してくれているのです。
トラブルシューティング
yt-dlpやffmpegを使っていると、時々問題が発生することがあります。よくある問題とその対処法を紹介します。
-
yt-dlp: command not found
またはffmpeg: command not found
- 原因: yt-dlpまたはffmpegが正しくインストールされていないか、実行ファイルがあるディレクトリへのPATHが通っていません。
- 対処法: インストール手順を再度確認し、正しくインストールされているか、そしてPATH環境変数にその場所が追加されているか確認してください。PATHを変更した場合は、コマンドプロンプトやターミナルを再起動してください。
-
ダウンロード中にエラーが発生する
- 原因: 動画が削除された、非公開になった、地域制限がかかっている、サイトの仕様が変更された、ネットワークの問題など様々な原因が考えられます。
- 対処法:
- 指定したURLがブラウザで再生できるか確認してください。
yt-dlp -U
コマンドでyt-dlpを最新版にアップデートしてください。サイト側の仕様変更に対応している可能性があります。yt-dlp --verbose [URL]
を実行して、詳細なログを確認してください。エラーメッセージから原因の手がかりが得られることがあります。- 地域制限が原因の場合は、VPNなどが必要になる場合があります。
- ログインが必要な動画の場合は、
--username
,--password
,--cookies
オプションなどを試してください。
-
MP3への変換がうまくいかない、またはエラーが発生する
- 原因: ffmpegが正しくインストールされていない、ffmpegに何らかの問題がある、ダウンロードした元ファイルに問題がある、ffmpegがサポートしていないコーデックなど。
- 対処法:
ffmpeg -version
を実行し、ffmpegが正しくインストールされ、PATHが通っているか確認してください。- ffmpegを最新版にアップデートしてください(パッケージマネージャーを使用している場合は
brew upgrade ffmpeg
やsudo apt upgrade ffmpeg
など)。 yt-dlp --keep-video -x --audio-format mp3 [URL]
を実行し、変換元の音声ファイル(多くの場合M4AやOpusなど)がダウンロードできているか確認してください。もしこれができていない場合は、yt-dlp側のダウンロードの問題です。- 変換元の音声ファイルがダウンロードできている場合、そのファイルに対してffmpeg単体で変換コマンド (
ffmpeg -i downloaded_audio.m4a output.mp3
) を実行してみてください。これでエラーが出る場合は、ffmpegの設定やインストールに問題がある可能性があります。 yt-dlp --verbose -x --audio-format mp3 [URL]
を実行し、yt-dlpがffmpegを呼び出す際のログを確認してください。ffmpegが出力するエラーメッセージが表示されます。
-
ダウンロード速度が遅い
- 原因: ネットワーク接続の問題、動画サイト側の帯域制限、多数の同時接続、yt-dlpの
--limit-rate
オプションが設定されているなど。 - 対処法:
- ネットワーク接続を確認してください。
- 時間帯を変えて試してみてください。
--limit-rate
オプションを設定している場合は、無効にするか制限値を上げてみてください。
- 原因: ネットワーク接続の問題、動画サイト側の帯域制限、多数の同時接続、yt-dlpの
-
メタデータ (–add-metadata) が埋め込まれない
- 原因: ffmpegが正しくインストールされていない、またはffmpegのビルドにメタデータ処理に必要なライブラリ(特に
ffprobe
)が含まれていない可能性があります。一部のフォーマットではメタデータ埋め込みがサポートされていない場合もあります。 - 対処法: ffmpegが正しくインストールされ、PATHが通っているか確認してください。可能であれば、公式サイトやパッケージマネージャーから提供されている標準的なビルドを使用してください。
--verbose
オプションでログを確認すると、メタデータ処理に関するエラーメッセージが表示されることがあります。
- 原因: ffmpegが正しくインストールされていない、またはffmpegのビルドにメタデータ処理に必要なライブラリ(特に
ベストプラクティスとヒント
- 専用のダウンロードフォルダを使う: ダウンロードしたファイルを整理するために、特定のフォルダ(例:
~/Downloads/Videos
や~/Downloads/Music
)を作成し、-o
オプションでそこに保存するようにしましょう。 - yt-dlpとffmpegを常に最新の状態に保つ: 動画サイトは頻繁に仕様を変更します。yt-dlpはこれらの変更に対応するために活発に開発が行われています。
yt-dlp -U
でyt-dlpを、パッケージマネージャーでffmpegを定期的にアップデートすることで、多くの問題を回避できます。 - よく使うオプションは設定ファイルに記述する:
yt-dlp.conf
を活用することで、コマンド入力の手間を省き、設定ミスを防ぐことができます。 - ディスク容量に注意する: 特に高画質動画を大量にダウンロードする場合、ディスク容量を圧迫する可能性があります。定期的に不要なファイルを削除するなど、ディスク管理を心がけましょう。MP3変換の場合は動画ファイルほど容量は使いませんが、品質を高くするとファイルサイズも大きくなります。
- 初めてのサイトではまず
-F
で確認する: よく知らないサイトからダウンロードする際は、まず-F [URL]
で利用可能なフォーマットを確認すると、どのようなストリームが提供されているか、どの形式でダウンロードするのが最適かが判断しやすくなります。 --verbose
をデバッグに活用する: 何か問題が発生した場合は、まず-v
オプションを付けて実行し、詳細なログを確認する習慣をつけましょう。問題解決の糸口が掴めることがほとんどです。
まとめ
本記事では、コマンドラインツールである yt-dlp と ffmpeg を用いて、インターネット上の様々な動画コンテンツをダウンロードし、特にMP3形式などの音声ファイルに変換する方法を詳細に解説しました。
- インストール: Windows、macOS、Linuxそれぞれの環境でのインストール方法を説明しました。特にパッケージマネージャーを利用する方法が簡単でおすすめです。
- 基本的な使い方: 単一の動画のダウンロード、
-x
オプションによる音声抽出、--audio-format mp3
オプションによるMP3変換、--audio-quality
による品質指定、-o
オプションによる出力ファイル名指定といった、基本的なコマンドとそのオプションについて解説しました。 - 応用的な使い方:
-F
オプションでのフォーマット確認、-f
オプションでの特定フォーマット指定、プレイリストのダウンロード、--add-metadata
によるメタデータ埋め込み、--postprocessor-args
による高度なffmpeg連携、設定ファイルyt-dlp.conf
の活用など、より便利に使いこなすためのテクニックを紹介しました。 - ffmpeg単体での利用: yt-dlpを使わずにffmpegのみで動画ファイルをMP3に変換する方法についても触れ、yt-dlp連携の利便性を再確認しました。
- トラブルシューティング: よくある問題とその原因、対処法について解説しました。
- ベストプラクティス: 日常的な利用をより効率的かつ快適にするためのヒントを提供しました。
yt-dlpとffmpegは、コマンドラインツールであるため最初は敷居が高いと感じるかもしれません。しかし、その学習コストを補って余りあるほどの強力さ、柔軟性、そして安定性を持っています。一度基本的な使い方を習得すれば、GUIツールでは実現できないような様々な処理を自動化・効率化することが可能です。
特に、プレイリスト全体の音声を一括でMP3に変換して音楽ライブラリに追加したり、特定の投稿者の動画音声を定期的にダウンロードしたりといった作業は、この組み合わせを使うことで非常にスムーズに行えます。
繰り返しになりますが、ダウンロードしたコンテンツの取り扱いには著作権法が関わってきます。本記事で紹介した技術は、あくまで個人的な利用の範囲で、著作権を侵害しないように責任を持って使用してください。
この詳細な解説が、あなたがyt-dlpとffmpegを効果的に活用するための一助となれば幸いです。ぜひこれらの強力なツールを使いこなし、デジタルライフをより豊かなものにしてください。
これで記事は終了です。指定された要件(約5000語、詳細な説明、MP3変換への焦点、インストールから応用まで、トラブルシューティング、ベストプラクティス、直接表示)を満たすように記述しました。単語数は、日本語での記述となるため句読点や助詞が多くなり、英語での5000語とは感覚が異なりますが、内容の網羅性と詳細さから十分な量になっているかと思います。
承知いたしました。yt-dlpとffmpegを使用して動画をダウンロードし、特にMP3への変換に焦点を当てた詳細な解説記事を記述します。約5000語を目指します。
超便利!yt-dlpとffmpegで動画をダウンロードしてMP3などに変換する徹底解説
インターネット上には様々な動画コンテンツが溢れています。YouTubeはもちろん、ニコニコ動画、Twitter、Instagram、TikTokなど、無数のプラットフォームが存在します。これらの動画をオフラインで視聴したい、あるいは動画から音声だけを抽出して音楽プレイヤーで楽しみたい、といったニーズは少なくありません。
ブラウザの拡張機能やオンラインツールでも動画ダウンロードや変換は可能ですが、多くのプラットフォームに対応し、高い柔軟性と安定性を提供するのは、やはりコマンドラインツールです。その中でも特に強力で広く使われているのが、yt-dlp と ffmpeg の組み合わせです。
本記事では、この強力なコンビ「yt-dlp」と「ffmpeg」を使い、動画をダウンロードし、特にMP3などの音声ファイルに変換する方法を、初心者の方にも分かりやすいように、インストールから基本的な使い方、そしてより高度なテクニックまで、詳細に解説していきます。
なぜ yt-dlp と ffmpeg なのか?
世の中には数多くの動画ダウンロードツールや変換ツールが存在します。その中で、なぜ私たちは yt-dlp と ffmpeg を推奨するのでしょうか?
- 圧倒的な対応サイト数: yt-dlpは、元のプロジェクトであるyoutube-dlから派生し、さらに多くの動画サイトに対応しています。YouTubeだけでなく、Vimeo、Dailymotion、そしてTwitterやInstagramなどのソーシャルメディア、さらにはニュースサイトや教育プラットフォームなど、非常に幅広いサイトから動画情報を取得し、ダウンロードできます。サイト側の仕様変更にも素早く対応するため、常に最新の状態に保つことで多くのサイトで利用可能です。
- 高い柔軟性とカスタマイズ性: コマンドラインツールであるため、非常に細かな設定が可能です。ダウンロードする動画の解像度やフォーマットの選択、音声品質の指定、出力ファイル名の自動命名規則の設定、プレイリストの一括ダウンロード、ダウンロードの再開、帯域制限など、GUIツールでは難しい、かゆいところに手が届く設定ができます。
- 安定性と信頼性: 長年開発が続けられており、多くのユーザーに利用されています。大規模なダウンロードやバッチ処理を行う際にも安定して動作し、エラーが発生した場合のトラブルシューティングもしやすい構造になっています。
- ffmpeg との連携: yt-dlp自身は動画サイトからストリームを取得するのが主な役割ですが、取得した動画や音声の「処理」には ffmpeg を利用します。複数のストリーム(例えば、高画質の映像ストリームと高音質の音声ストリームは別々に提供されることがあります)を結合(多重化/muxing)したり、取得した音声ファイルを別の形式(例: M4AからMP3)に変換したり、動画を音声に変換したりといった作業を、yt-dlp が内部で ffmpeg を呼び出して自動的に行ってくれます。これにより、ダウンロードから変換までの一連の作業を一つのコマンドで完結させることができます。
- オープンソースで無料: yt-dlpもffmpegも、どちらもオープンソースソフトウェアであり、無料で利用できます。開発がコミュニティによって支えられており、活発に更新されています。
これらの理由から、yt-dlpとffmpegの組み合わせは、高度な動画ダウンロード・変換ニーズに応えるための非常に強力なソリューションと言えます。
始める前に:著作権について
インターネット上の動画コンテンツには、著作権が存在します。個人的な利用の範囲を超える無断での複製、配布、改変などは、著作権法に違反する可能性があります。本記事で解説する技術は、あくまで技術的な利用方法を示すものであり、著作権法を遵守した、個人的な視聴やバックアップなどの範囲でのみ利用してください。 特に、ダウンロードしたコンテンツを不特定多数に公開したり、商用目的で利用したりすることは絶対に避けてください。利用は自己責任でお願いします。
準備:yt-dlp と ffmpeg のインストール
yt-dlpとffmpegを利用するには、まずこれらのツールをPCにインストールする必要があります。インストール方法はOSによって異なります。ここでは主要なOS(Windows, macOS, Linux)でのインストール方法を解説します。
どちらのツールも、コマンドプロンプト(Windows)またはターミナル(macOS/Linux)から実行できるように、「PATH」と呼ばれる環境変数に登録することが推奨されます。これにより、ツールの実行ファイルがあるディレクトリに移動しなくても、どのディレクトリからでもコマンド名だけでツールを起動できるようになります。
Windows でのインストール
Windowsでは、実行ファイルをダウンロードして手動でPATHに追加する方法と、パッケージマネージャーを利用する方法があります。パッケージマネージャーを利用する方が簡単でおすすめです。
方法1:パッケージマネージャー (Chocolatey または Scoop) を利用する(推奨)
Chocolatey や Scoop は、Windows向けのパッケージマネージャーです。LinuxのaptやHomebrewのように、コマンド一つでソフトウェアのインストールやアップデートができます。
-
Chocolatey を利用する場合:
Chocolateyがインストールされていない場合は、公式サイト (https://chocolatey.org/install) を参照してインストールしてください。インストール後、管理者権限でコマンドプロンプトまたはPowerShellを開き、以下のコマンドを実行します。bash
choco install yt-dlp ffmpegこれにより、yt-dlpとffmpegの両方がダウンロードされ、自動的にPATHに追加されます。
-
Scoop を利用する場合:
Scoopがインストールされていない場合は、公式サイト (https://scoop.sh/) を参照してインストールしてください。インストール後、PowerShellを開き、以下のコマンドを実行します。bash
scoop install yt-dlp ffmpegこちらもyt-dlpとffmpegがダウンロードされ、自動的にPATHに追加されます。
方法2:手動でダウンロードしPATHを追加する
パッケージマネージャーを使わない場合、それぞれの公式サイトから実行ファイルをダウンロードし、手動でPATHに追加します。
-
yt-dlp のダウンロード:
yt-dlpのリリースページ (https://github.com/yt-dlp/yt-dlp/releases) にアクセスし、最新バージョンのyt-dlp.exe
をダウンロードします。 -
ffmpeg のダウンロード:
ffmpegの公式サイト (https://ffmpeg.org/download.html) にアクセスし、Windowsのビルドを提供しているリンク(例: Gyan’s Builds や BtbN Builds)から最新バージョンの実行ファイル(zipファイルなど)をダウンロードします。ダウンロードしたzipファイルを解凍します。解凍されたフォルダの中にbin
というフォルダがあり、その中にffmpeg.exe
やffprobe.exe
といった実行ファイルがあります。 -
実行ファイルの配置とPATHの追加:
ダウンロードしたyt-dlp.exe
と、解凍したffmpegフォルダ内のbin
フォルダを、PC内の任意の場所(例:C:\Tools\yt-dlp
やC:\Tools\ffmpeg
)に配置します。次に、これらのフォルダへのパスをWindowsの環境変数Path
に追加します。- Windowsの検索バーで「環境変数」と入力し、「システム環境変数の編集」を開きます。
- 「システムのプロパティ」ウィンドウが表示されるので、「詳細設定」タブの「環境変数」ボタンをクリックします。
- 「環境変数」ウィンドウが表示されます。システム環境変数リストの中から
Path
を選択し、「編集」をクリックします。 - 「環境変数の編集」ウィンドウが表示されます。「新規」をクリックし、yt-dlp.exe があるフォルダのパス(例:
C:\Tools\yt-dlp
)と、ffmpegのbin
フォルダのパス(例:C:\Tools\ffmpeg\bin
)をそれぞれ追加します。 - すべてのウィンドウを「OK」で閉じます。
注意: PATHの変更を有効にするには、コマンドプロンプトやPowerShellを一度閉じてから再度開き直す必要があります。
macOS でのインストール
macOSでは、Homebrewというパッケージマネージャーを利用するのが最も簡単でおすすめです。
-
Homebrew のインストール:
Homebrewがインストールされていない場合は、公式サイト (https://brew.sh/index_ja) にアクセスし、そこに記載されているコマンドをターミナルで実行してインストールしてください。 -
yt-dlp と ffmpeg のインストール:
Homebrewがインストールされたら、ターミナルを開き以下のコマンドを実行します。bash
brew install yt-dlp ffmpegこれにより、yt-dlpとffmpegの両方がダウンロードされ、自動的にインストール、設定されます。
Linux でのインストール
多くのLinuxディストリビューションでは、標準のパッケージマネージャーでyt-dlpとffmpegが提供されています。
-
Debian/Ubuntu:
bash
sudo apt update
sudo apt install yt-dlp ffmpeg -
Fedora:
bash
sudo dnf install yt-dlp ffmpeg -
Arch Linux:
bash
sudo pacman -S yt-dlp ffmpeg
使用しているディストリビューションに合わせて、適切なパッケージマネージャーのコマンドを実行してください。
インストール確認
インストールが完了したら、新しいコマンドプロンプトまたはターミナルを開き、以下のコマンドを実行して、それぞれが正しくインストールされ、PATHが通っているか確認します。
bash
yt-dlp --version
ffmpeg -version
それぞれのバージョン情報が表示されれば成功です。もし「’yt-dlp’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」のようなエラーが出る場合は、PATHの設定が正しくできていない可能性があります。
これで、yt-dlpとffmpegを使う準備が整いました。
yt-dlp の基本的な使い方
yt-dlpはコマンドラインから yt-dlp [オプション] [URL]
という形式で実行します。最も基本的な使い方は、URLを指定して動画をダウンロードすることです。
bash
yt-dlp https://www.youtube.com/watch?v=xxxxxxxxxxx
このコマンドを実行すると、yt-dlpは指定されたURLの動画情報を取得し、デフォルト設定で動画をダウンロードします。デフォルトでは、可能な限り高画質で、映像と音声が一緒になったフォーマットを選択し、現在のディレクトリに動画ファイルを保存します。ファイル名は動画のタイトルやIDに基づいて自動的に決定されます。
ダウンロード中に、進捗状況(ダウンロード速度、完了率、残り時間など)がターミナルに表示されます。
音声だけをダウンロードする (-x オプション)
動画全体ではなく、音声だけが必要な場合、-x
オプション(--extract-audio
)を使用します。
bash
yt-dlp -x https://www.youtube.com/watch?v=xxxxxxxxxxx
このコマンドを実行すると、yt-dlpは動画から音声ストリームのみを抽出、またはダウンロードし、音声ファイルとして保存します。デフォルトの音声フォーマットは、元動画で利用されている最適なオーディオ形式(多くの場合M4AやOpus)になります。この際、yt-dlpは抽出した音声ストリームをそのまま保存するか、または必要に応じて ffmpeg
を利用して他の形式に変換します。
MP3形式で音声ダウンロードする (–audio-format mp3)
多くのユーザーにとって、動画の音声を抽出する際の目的は、音楽プレイヤーで簡単に再生できるMP3形式にすることでしょう。yt-dlpは -x
オプションと組み合わせて --audio-format
オプションを使用することで、直接指定したフォーマットに変換して保存できます。
MP3形式で保存するには、以下のようにコマンドを実行します。
bash
yt-dlp -x --audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
このコマンドは以下の処理を行います:
yt-dlp
が指定されたURLの動画情報を解析し、最適な音声ストリームを探します。-x
オプションにより、音声ストリームをダウンロードまたは抽出することを決定します。--audio-format mp3
オプションにより、抽出した音声をMP3形式に変換することを指定します。yt-dlp
はダウンロードした音声ストリームを一時ファイルとして保存し、その後ffmpeg
を呼び出してこの一時ファイルをMP3形式に変換します。- 変換されたMP3ファイルが指定された出力先に保存され、一時ファイルは削除されます。
これにより、ダウンロードからMP3への変換までが自動で行われます。これは、yt-dlpとffmpegの連携の最も一般的な例です。
音声品質を指定する (–audio-quality)
MP3に変換する際に、音声の品質(ビットレート)を指定することもできます。--audio-quality
オプションを使用します。
MP3の場合、品質はビットレートで指定するのが一般的です。例えば、CD並みの高音質とされる320kbpsを指定するには、以下のようにします。
bash
yt-dlp -x --audio-format mp3 --audio-quality 320K https://www.youtube.com/watch?v=xxxxxxxxxxx
320K
は320キロビット毎秒を意味します。他の一般的なビットレートとしては、192K(標準的な高音質)、128K(標準音質)などがあります。
また、MP3ではVBR(Variable Bitrate:可変ビットレート)という方式もよく使われます。これは、音声の内容に応じてビットレートを自動的に調整することで、ファイルサイズを抑えつつ品質を保つエンコード方式です。VBRの品質レベルは0から9の数値で指定されることが多く、数値が小さいほど高品質になります。最高品質のVBRを指定する場合、--audio-quality 0
とします。
bash
yt-dlp -x --audio-format mp3 --audio-quality 0 https://www.youtube.com/watch?v=xxxxxxxxxxx
特にこだわりがなければ、--audio-quality 0
(最高品質VBR)または --audio-quality 320K
(最高品質CBR)を指定するのがおすすめです。--audio-quality
オプションを省略した場合、yt-dlpは通常、品質を指定しないか、デフォルトの品質(多くの場合はVBR 5程度、または元音声に近いビットレート)でエンコードを行います。
出力ファイル名を指定する (-o オプション)
デフォルトのファイル名も便利ですが、自分で分かりやすい名前にしたい場合や、大量にダウンロードする際に命名規則を統一したい場合があります。-o
オプション(--output
)を使用すると、出力ファイル名や保存先ディレクトリを指定できます。
bash
yt-dlp -o "My Audio.mp3" -x --audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
上記コマンドは、ダウンロードしたMP3ファイルを My Audio.mp3
という名前で現在のディレクトリに保存します。
-o
オプションでは、特別な変数を使用してファイル名を自動生成させることができます。これは、複数の動画をダウンロードする際に非常に便利です。よく使われる変数には以下のようなものがあります。
%(title)s
: 動画のタイトル%(id)s
: 動画のID%(uploader)s
: 投稿者の名前%(ext)s
: 拡張子(例:mp4
,mp3
)%(upload_date)s
: アップロード日 (YYYYMMDD形式)%(playlist_index)s
: プレイリスト内のインデックス番号 (プレイリストの場合)
これらの変数を組み合わせることで、柔軟なファイル名を指定できます。例えば、「[投稿者名] – [動画タイトル].[拡張子]」という形式で保存したい場合は、以下のように指定します。
bash
yt-dlp -o "%(uploader)s - %(title)s.%(ext)s" https://www.youtube.com/watch?v=xxxxxxxxxxx
MP3として保存する場合、拡張子は通常 .mp3
になるため、-x --audio-format mp3
オプションと組み合わせる際は、ファイル名の拡張子を .mp3
と固定してしまう方が確実です。
bash
yt-dlp -o "%(uploader)s - %(title)s.mp3" -x --audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
さらに、サブディレクトリを作成してそこに保存することも可能です。例えば、「[投稿者名]」というフォルダを作成し、その中に「[動画タイトル].mp3」として保存したい場合は、以下のように指定します。
bash
yt-dlp -o "%(uploader)s/%(title)s.mp3" -x --audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
この場合、コマンドを実行したディレクトリに投稿者名のフォルダが作成され、その中にMP3ファイルが保存されます。
複数の動画/URLをまとめて処理する
yt-dlpは複数のURLをまとめて処理することも可能です。コマンドの最後に複数のURLをスペース区切りで並べるだけです。
bash
yt-dlp -x --audio-format mp3 URL1 URL2 URL3 ...
あるいは、URLのリストをテキストファイルに記述し、-a
オプション(--batch-file
)でそのファイルを指定することもできます。これは、ダウンロードしたい動画が大量にある場合に便利です。
まず、ダウンロードしたい動画のURLを記述したテキストファイル(例: urls.txt
)を作成します。ファイルには1行に1つのURLを記述します。
https://www.youtube.com/watch?v=video_id_1
https://vimeo.com/video_id_2
https://twitter.com/user/status/tweet_id_3
...
そして、以下のコマンドを実行します。
bash
yt-dlp -a urls.txt -x --audio-format mp3
これにより、ファイルにリストされたすべてのURLに対して、音声抽出とMP3変換が順番に実行されます。
yt-dlp の応用的な使い方
これまでに紹介した基本的な使い方だけでも十分便利ですが、yt-dlpにはさらに多くのオプションがあり、より高度なニーズに応えることができます。
利用可能なフォーマットを確認する (-F オプション)
特定の動画でダウンロード可能な映像や音声のフォーマット、解像度、ビットレートなどを詳細に知りたい場合は、-F
オプション(--list-formats
)を使用します。
bash
yt-dlp -F https://www.youtube.com/watch?v=xxxxxxxxxxx
このコマンドはダウンロードは行わず、利用可能なフォーマットの一覧を表示します。出力は以下のような形式になります(表示される情報はサイトや動画によって異なります)。
“`
ID EXT RESOLUTION FPS CH FILESIZE TBR PROTOPIA VCODEC VBR ACODEC ABR
…
249 webm audio only opus 1.73MiB 53k https audio only 53k opus
250 webm audio only opus 2.42MiB 75k https audio only 75k opus
251 webm audio only opus 4.34MiB 134k https audio only 134k opus
140 m4a audio only mp4a 4.28MiB 129k https audio only 129k mp4a
…
137 mp4 1920×1080 30 – – https avc1 –
248 webm 1920×1080 30 – – https vp9 –
271 webm 2560×1440 30 – – https vp9 –
…
22 mp4 1280×720 30 vid 10.87MiB ? https avc1 – mp4a 128k # 映像と音声が一体
18 mp4 640×360 30 vid 4.84MiB ? https avc1 – mp4a 96k # 映像と音声が一体
…
“`
このリストには各フォーマットに「ID」が付与されています。ID 140
はM4A形式の音声のみ、ID 251
はOpus形式の音声のみ、ID 137
はMP4形式の1080p映像のみ、ID 22
は720p映像と128kbps音声が一体になったMP4、といった情報が読み取れます。
最近の多くの動画サイト(特にYouTube)では、高画質・高音質を提供するために、映像ストリームと音声ストリームが別々に配信されています。-F
の出力で audio only
と書かれている行が音声ストリーム、audio only
がなく FILESIZE
や TBR
が -
となっている行は映像ストリームのみです。ID 22
や 18
のように、映像と音声が一体になっているものもありますが、これらは最新・最高画質のものではないことが多いです。
yt-dlpがデフォルトでダウンロードする場合、映像と音声が分離している場合はそれぞれ最適なものをダウンロードし、ffmpeg
を使って自動的に結合(多重化)してくれます。
特定のフォーマットを指定してダウンロードする (-f オプション)
-F
オプションで確認したIDを使用して、ダウンロードしたい特定のフォーマットを指定できます。-f
オプション(--format
)を使用します。
例えば、1080pのMP4映像 (ID 137
) とM4A音声 (ID 140
) をダウンロードして結合したい場合、以下のように指定します。
bash
yt-dlp -f 137+140 https://www.youtube.com/watch?v=xxxxxxxxxxx
+
記号で映像IDと音声IDを結合して指定します。yt-dlpはこれらのストリームをダウンロードし、ffmpeg
を利用して一つの動画ファイルに結合します。
映像と音声が一体になっているフォーマット(例: ID 22
)をダウンロードしたい場合は、そのIDだけを指定します。
bash
yt-dlp -f 22 https://www.youtube.com/watch?v=xxxxxxxxxxx
複数の代替フォーマットを指定することもできます。例えば、最高の映像と音声をダウンロードしたいが、それらが存在しない場合は720pの映像と最高の音声をダウンロードしたい、といった場合です。カンマ区切りで優先順位の高い順に指定します。
bash
yt-dlp -f bestvideo+bestaudio,best --merge-output-format mp4 https://www.youtube.com/watch?v=xxxxxxxxxxx
bestvideo+bestaudio
はyt-dlpが自動的に最適な映像と音声ストリームを選択して結合します。これが利用できない場合、best
は映像と音声が一体になっているフォーマットの中で最も高品質なものを選択します。--merge-output-format mp4
は、分離したストリームを結合する際に、出力フォーマットをMP4に指定しています。
この -f
オプションは非常に強力で、様々な条件(解像度、コーデック、ファイルサイズなど)でフォーマットをフィルタリングして指定することも可能です。例えば、720p以下の映像で最もファイルサイズの小さいものと、最高の音声を組み合わせたい場合は、以下のように指定します。
bash
yt-dlp -f "bestvideo[height<=720]+bestaudio" --merge-output-format mp4 https://www.youtube.com/watch?v=xxxxxxxxxxx
角括弧 []
の中に条件を記述します。利用可能な条件は -F
オプションの出力に表示される情報(RESOLUTION
、VCODEC
、FILESIZE
、ABR
など)です。
MP3変換におけるフォーマット選択の考慮
MP3に変換する場合、通常は動画全体をダウンロードする必要はありません。-x
オプションで音声のみを抽出します。この際、yt-dlpはデフォルトで最も高品質な音声ストリームを選択します。元の音声ストリームがM4AであろうとOpusであろうと、--audio-format mp3
を指定していれば、yt-dlpがffmpegを使ってMP3に変換してくれます。
したがって、MP3変換が目的であれば、-x --audio-format mp3
を使うのが最も簡単で、-f
オプションで特定の音声フォーマットIDを指定する必要はほとんどありません。yt-dlpに最適な音声ストリームの選択を任せるのが良いでしょう。
ただし、もし何らかの理由で特定の音声ストリーム(例えば、ID 140
のM4A)をダウンロードしてからMP3に変換したい場合は、以下のように-f
と -x
を組み合わせることも 理論上は可能 ですが、冗長です。
“`bash
これは推奨されない方法です。通常は -x –audio-format mp3 だけで十分です。
yt-dlp -f 140 -x –audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
``
-f 140でM4Aを指定し、
-x –audio-format mp3でそれをMP3に変換する、という指示になります。しかし、
-x –audio-format mp3自体が「音声だけを抽出し、MP3に変換する。その際、yt-dlpが最適な音声ストリームを選択する」という意味なので、
-f 140は余計な制約を課していることになります。最適な方法は、やはり
-x –audio-format mp3` です。
プレイリストをダウンロードする
yt-dlpはプレイリストのダウンロードも簡単にできます。プレイリストのURLを指定するだけです。
bash
yt-dlp https://www.youtube.com/playlist?list=PL...
デフォルトではプレイリストに含まれるすべての動画がダウンロードされます。これも -x --audio-format mp3
と組み合わせることで、プレイリスト全体の音声をMP3としてダウンロードできます。
bash
yt-dlp -x --audio-format mp3 https://www.youtube.com/playlist?list=PL...
プレイリストの項目を限定することもできます。
-
特定の範囲の動画のみダウンロード (
--playlist-items
): 例: 10番目から20番目までbash
yt-dlp --playlist-items 10-20 -x --audio-format mp3 https://www.youtube.com/playlist?list=PL... -
特定のインデックスの動画のみダウンロード (
--playlist-items
): 例: 1番目、5番目、9番目bash
yt-dlp --playlist-items 1,5,9 -x --audio-format mp3 https://www.youtube.com/playlist?list=PL... -
既にダウンロード済みの動画をスキップする (
--download-archive
): プレイリストの内容が更新された際に、追加された動画だけをダウンロードしたい場合に便利です。ダウンロードした動画のIDを記録するテキストファイルを指定します。bash
yt-dlp --download-archive downloaded.txt -x --audio-format mp3 https://www.youtube.com/playlist?list=PL...downloaded.txt
というファイルが存在しない場合は新しく作成され、ダウンロードが完了した動画のIDが追記されていきます。次回同じコマンドを実行する際に、このファイルにIDが記録されている動画はスキップされます。
メタデータを埋め込む (–add-metadata)
ダウンロードした音声ファイル(特にMP3)に、動画のタイトル、投稿者、サムネイル(アートワークとして)、アップロード日などのメタデータを埋め込むことができます。これにより、音楽プレイヤーなどで表示が豊かになります。この機能はffmpegのffprobe
というツールを利用するため、ffmpegが正しくインストールされている必要があります。
メタデータを埋め込むには、--add-metadata
オプションを使用します。
bash
yt-dlp --add-metadata -x --audio-format mp3 https://www.youtube.com/watch?v=xxxxxxxxxxx
yt-dlpは可能な限り多くの情報を取得し、ffmpegを使って出力ファイルにメタデータとして書き込みます。特に、サムネイル画像が音声ファイルのアートワークとして埋め込まれるのは非常に便利です。
ffmpeg へのカスタム引数を渡す (–postprocessor-args)
--audio-format mp3
のようにyt-dlpに組み込まれている変換機能は便利ですが、ffmpegにはさらに詳細なエンコード設定や様々な処理機能があります。yt-dlpはダウンロード後の処理(ポストプロセッシング)としてffmpegを呼び出す際に、ユーザーが任意の引数を渡せるようになっています。これが --postprocessor-args
オプションです。
例えば、MP3エンコードの際に、yt-dlpの --audio-quality
オプションでは指定できないような、より低レベルなffmpegエンコーダー(libmp3lameなど)のオプションを渡したい場合などに利用できます。ただし、このオプションを使うにはffmpegのコマンドラインオプションに関する知識が必要になります。
--postprocessor-args
は、ポストプロセッサーの種類(この場合はオーディオ抽出/変換なので NA:
または ExtractAudio:
)と、それに続くffmpegの引数を指定します。
例:libmp3lame
エンコーダーで、特定のVBRプリセット(VBR-lowなど)を指定したい場合(yt-dlpの--audio-quality
と重複するため通常は使いませんが、例として)。
“`bash
この例は複雑であり、通常 –audio-quality 0 で十分です。
あくまで postprocessor-args の使い方の例として示します。
yt-dlp -x –audio-format mp3 –postprocessor-args “NA:-codec:a libmp3lame -q:a 0” https://www.youtube.com/watch?v=xxxxxxxxxxx
“`
NA:
またはExtractAudio:
: オーディオ抽出/変換のポストプロセッサーに引数を渡すことを示します。-codec:a libmp3lame
: 音声エンコーダーとしてlibmp3lameを使用することを指定します。-q:a 0
: libmp3lameのVBR品質レベルを0(最高品質)に設定します。
このように、--postprocessor-args
を使うとffmpegの機能を最大限に活用できますが、ffmpegのコマンドラインオプションについて学習する必要があります。
また、このオプションを使って、ダウンロードした音声ファイルに対してffmpegで別の処理(例えば、音量正規化やトリミングなど)を行うことも技術的には可能ですが、少し複雑になります。通常は、yt-dlpでダウンロード・変換した後、別途ffmpegコマンドを実行する方が分かりやすいかもしれません。
設定ファイルを使う (yt-dlp.conf)
毎回コマンドラインで多くのオプションを指定するのは手間がかかります。よく使うオプションは、設定ファイルに記述しておくことができます。yt-dlpは起動時に特定の場所にある yt-dlp.conf
というファイルから設定を読み込みます。
設定ファイルの場所はOSによって異なりますが、通常はユーザーのホームディレクトリ内の以下のパスに配置します。
- Windows:
%APPDATA%\yt-dlp\yt-dlp.conf
- macOS:
~/.config/yt-dlp/yt-dlp.conf
- Linux:
~/.config/yt-dlp/yt-dlp.conf
設定ファイルには、コマンドラインオプションを1行に1つ記述します。#
で始まる行はコメントとして無視されます。
例えば、常にMP3形式で、最高品質VBR、メタデータ埋め込み、特定の出力先フォルダに保存したい場合、yt-dlp.conf
に以下のように記述できます。
“`conf
音声のみを抽出
-x
MP3形式に変換
–audio-format mp3
最高品質VBR
–audio-quality 0
メタデータを埋め込む
–add-metadata
出力ファイル名を指定(例: Downloads/Audio/投稿者/タイトル.mp3)
-o “~/Downloads/Audio/%(uploader)s/%(title)s.mp3”
–download-archive を使ってダウンロード済みをスキップする場合
–download-archive “~/Downloads/Audio/downloaded.txt”
“`
設定ファイルにこれらのオプションを記述しておけば、以降は単に yt-dlp [URL]
または yt-dlp -a urls.txt
を実行するだけで、設定ファイルに記述されたオプションが自動的に適用されます。コマンドラインで指定したオプションは、設定ファイルのオプションよりも優先されます。
これにより、日常的な使用が非常に楽になります。
その他の便利なオプション
--limit-rate <速度>
: ダウンロード速度を制限します。例:--limit-rate 100K
(100KB/s)、--limit-rate 1M
(1MB/s)。帯域幅を使い切らないようにしたい場合に便利です。--sleep-interval <秒>
: 各ダウンロードの間に指定した秒数だけ待機します。連続して大量のダウンロードを行う際に、サイトへの負荷を軽減できます。例:--sleep-interval 5
(5秒待機)。--verbose
または-v
: 詳細な処理ログを表示します。エラーが発生した場合や、yt-dlpがどのような判断でフォーマットを選択しているかなどを確認するのに役立ちます。--cookies <ファイル>
: ログインが必要なサイトなどで使用できるクッキーファイルを指定します。ブラウザからクッキーをエクスポートして利用します。--username <ユーザー名>
,--password <パスワード>
: 一部のサイトでユーザー名とパスワードによる認証に使用します。--netrc
:~/.netrc
ファイルに記述されたログイン情報を使用します。パスワードをコマンドラインに直接入力したくない場合に安全です。--ignore-errors
: エラーが発生しても処理を中断せず、次の動画の処理に進みます。バッチ処理で一部の動画が失敗しても全体を止めたくない場合に便利です。--keep-video
:-x
オプションで音声抽出を行う際に、変換元の動画/音声ファイルも削除せずに残しておきます。デバッグなどに便利です。
ffmpeg を単体で使う(yt-dlpを使わない場合)
yt-dlpで動画をダウンロードした後、yt-dlpの機能を使わずに別途ffmpegコマンドで変換を行うことも可能です。これは、yt-dlpでは対応していない複雑な変換を行いたい場合や、既に持っている動画ファイルを変換したい場合に役立ちます。
基本的なffmpegの使い方は以下の通りです。
bash
ffmpeg -i 入力ファイル名 出力ファイル名
-i 入力ファイル名
: 入力ファイルを指定します。出力ファイル名
: 出力ファイルを指定します。ffmpegは出力ファイルの拡張子を見て、自動的にフォーマットを判断します。
例:ダウンロードした video.mp4
を audio.mp3
に変換する
bash
ffmpeg -i video.mp4 audio.mp3
このコマンドを実行すると、ffmpegは video.mp4
を読み込み、音声ストリームをMP3形式でエンコードし、audio.mp3
というファイルに保存します。デフォルトのエンコード設定(ビットレートなど)が使用されます。
MP3変換の詳細設定
ffmpegでMP3変換を行う際、エンコードの詳細設定(ビットレート、エンコーダーなど)を指定することも可能です。
-
特定のビットレート (CBR) を指定:
-ab
オプションを使用します。bash
ffmpeg -i video.mp4 -ab 320k audio_320k.mp3320k
は320kbpsを意味します。 -
品質を指定 (VBR):
-q:a
オプションや-V
オプション(libmp3lameの場合)を使用します。通常、MP3の場合はlibmp3lameエンコーダーが使われ、-V
オプションで0(最高品質)から9(最低品質)のVBR品質を指定します。bash
ffmpeg -i video.mp4 -vn -acodec libmp3lame -V 0 audio_v0.mp3-vn
: 映像ストリームを含めない(音声のみを抽出する)ことを指定します。-acodec libmp3lame
: 音声エンコーダーとしてlibmp3lameを明示的に指定します。(多くの場合、指定しなくてもMP3出力なら自動選択されますが、明示すると確実です)-V 0
: VBR品質レベルを0(最高品質)に設定します。
-
メタデータを埋め込む:
-map_metadata
オプションや-metadata
オプションを使用します。“`bash
元ファイルにあるメタデータをすべて引き継ぐ(可能な場合)
ffmpeg -i input.mp4 -map_metadata 0 -vn -acodec libmp3lame -V 0 output.mp3
任意のメタデータを手動で指定
ffmpeg -i input.mp4 -vn -acodec libmp3lame -V 0 -metadata artist=”アーティスト名” -metadata title=”曲名” output.mp3
“`
このように、ffmpeg単体でも柔軟な変換が可能ですが、元の動画ファイルを取得する手間や、映像と音声が分離している場合の処理などを考えると、yt-dlpの --audio-format mp3
機能が非常に効率的であることが分かります。yt-dlpは内部でこれらのffmpegコマンドを適切に組み合わせて実行してくれているのです。
トラブルシューティング
yt-dlpやffmpegを使っていると、時々問題が発生することがあります。よくある問題とその対処法を紹介します。
-
yt-dlp: command not found
またはffmpeg: command not found
- 原因: yt-dlpまたはffmpegが正しくインストールされていないか、実行ファイルがあるディレクトリへのPATHが通っていません。
- 対処法: インストール手順を再度確認し、正しくインストールされているか、そしてPATH環境変数にその場所が追加されているか確認してください。PATHを変更した場合は、コマンドプロンプトやターミナルを再起動してください。
-
ダウンロード中にエラーが発生する
- 原因: 動画が削除された、非公開になった、地域制限がかかっている、サイトの仕様が変更された、ネットワークの問題など様々な原因が考えられます。
- 対処法:
- 指定したURLがブラウザで再生できるか確認してください。
yt-dlp -U
コマンドでyt-dlpを最新版にアップデートしてください。サイト側の仕様変更に対応している可能性があります。yt-dlp --verbose [URL]
を実行して、詳細なログを確認してください。エラーメッセージから原因の手がかりが得られることがあります。- 地域制限が原因の場合は、VPNなどが必要になる場合があります。
- ログインが必要な動画の場合は、
--username
,--password
,--cookies
オプションなどを試してください。
-
MP3への変換がうまくいかない、またはエラーが発生する
- 原因: ffmpegが正しくインストールされていない、ffmpegに何らかの問題がある、ダウンロードした元ファイルに問題がある、ffmpegがサポートしていないコーデックなど。
- 対処法:
ffmpeg -version
を実行し、ffmpegが正しくインストールされ、PATHが通っているか確認してください。- ffmpegを最新版にアップデートしてください(パッケージマネージャーを使用している場合は
brew upgrade ffmpeg
やsudo apt upgrade ffmpeg
など)。 yt-dlp --keep-video -x --audio-format mp3 [URL]
を実行し、変換元の音声ファイル(多くの場合M4AやOpusなど)がダウンロードできているか確認してください。もしこれができていない場合は、yt-dlp側のダウンロードの問題です。- 変換元の音声ファイルがダウンロードできている場合、そのファイルに対してffmpeg単体で変換コマンド (
ffmpeg -i downloaded_audio.m4a output.mp3
) を実行してみてください。これでエラーが出る場合は、ffmpegの設定やインストールに問題がある可能性があります。 yt-dlp --verbose -x --audio-format mp3 [URL]
を実行し、yt-dlpがffmpegを呼び出す際のログを確認してください。ffmpegが出力するエラーメッセージが表示されます。
-
ダウンロード速度が遅い
- 原因: ネットワーク接続の問題、動画サイト側の帯域制限、多数の同時接続、yt-dlpの
--limit-rate
オプションが設定されているなど。 - 対処法:
- ネットワーク接続を確認してください。
- 時間帯を変えて試してみてください。
--limit-rate
オプションを設定している場合は、無効にするか制限値を上げてみてください。
- 原因: ネットワーク接続の問題、動画サイト側の帯域制限、多数の同時接続、yt-dlpの
-
メタデータ (–add-metadata) が埋め込まれない
- 原因: ffmpegが正しくインストールされていない、またはffmpegのビルドにメタデータ処理に必要なライブラリ(特に
ffprobe
)が含まれていない可能性があります。一部のフォーマットではメタデータ埋め込みがサポートされていない場合もあります。 - 対処法: ffmpegが正しくインストールされ、PATHが通っているか確認してください。可能であれば、公式サイトやパッケージマネージャーから提供されている標準的なビルドを使用してください。
--verbose
オプションでログを確認すると、メタデータ処理に関するエラーメッセージが表示されることがあります。
- 原因: ffmpegが正しくインストールされていない、またはffmpegのビルドにメタデータ処理に必要なライブラリ(特に
ベストプラクティスとヒント
- 専用のダウンロードフォルダを使う: ダウンロードしたファイルを整理するために、特定のフォルダ(例:
~/Downloads/Videos
や~/Downloads/Music
)を作成し、-o
オプションでそこに保存するようにしましょう。 - yt-dlpとffmpegを常に最新の状態に保つ: 動画サイトは頻繁に仕様を変更します。yt-dlpはこれらの変更に対応するために活発に開発が行われています。
yt-dlp -U
でyt-dlpを、パッケージマネージャーでffmpegを定期的にアップデートすることで、多くの問題を回避できます。 - よく使うオプションは設定ファイルに記述する:
yt-dlp.conf
を活用することで、コマンド入力の手間を省き、設定ミスを防ぐことができます。 - ディスク容量に注意する: 特に高画質動画を大量にダウンロードする場合、ディスク容量を圧迫する可能性があります。定期的に不要なファイルを削除するなど、ディスク管理を心がけましょう。MP3変換の場合は動画ファイルほど容量は使いませんが、品質を高くするとファイルサイズも大きくなります。
- 初めてのサイトではまず
-F
で確認する: よく知らないサイトからダウンロードする際は、まず-F [URL]
で利用可能なフォーマットを確認すると、どのようなストリームが提供されているか、どの形式でダウンロードするのが最適かが判断しやすくなります。 --verbose
をデバッグに活用する: 何か問題が発生した場合は、まず-v
オプションを付けて実行し、詳細なログを確認する習慣をつけましょう。問題解決の糸口が掴めることがほとんどです。
まとめ
本記事では、コマンドラインツールである yt-dlp と ffmpeg を用いて、インターネット上の様々な動画コンテンツをダウンロードし、特にMP3形式などの音声ファイルに変換する方法を詳細に解説しました。
- インストール: Windows、macOS、Linuxそれぞれの環境でのインストール方法を説明しました。特にパッケージマネージャーを利用する方法が簡単でおすすめです。
- 基本的な使い方: 単一の動画のダウンロード、
-x
オプションによる音声抽出、--audio-format mp3
オプションによるMP3変換、--audio-quality
による品質指定、-o
オプションによる出力ファイル名指定といった、基本的なコマンドとそのオプションについて解説しました。 - 応用的な使い方:
-F
オプションでのフォーマット確認、-f
オプションでの特定フォーマット指定、プレイリストのダウンロード、--add-metadata
によるメタデータ埋め込み、--postprocessor-args
による高度なffmpeg連携、設定ファイルyt-dlp.conf
の活用など、より便利に使いこなすためのテクニックを紹介しました。 - ffmpeg単体での利用: yt-dlpを使わずにffmpegのみで動画ファイルをMP3に変換する方法についても触れ、yt-dlp連携の利便性を再確認しました。
- トラブルシューティング: よくある問題とその原因、対処法について解説しました。
- ベストプラクティス: 日常的な利用をより効率的かつ快適にするためのヒントを提供しました。
yt-dlpとffmpegは、コマンドラインツールであるため最初は敷居が高いと感じるかもしれません。しかし、その学習コストを補って余りあるほどの強力さ、柔軟性、そして安定性を持っています。一度基本的な使い方を習得すれば、GUIツールでは実現できないような様々な処理を自動化・効率化することが可能です。
特に、プレイリスト全体の音声を一括でMP3に変換して音楽ライブラリに追加したり、特定の投稿者の動画音声を定期的にダウンロードしたりといった作業は、この組み合わせを使うことで非常にスムーズに行えます。
繰り返しになりますが、ダウンロードしたコンテンツの取り扱いには著作権法が関わってきます。本記事で紹介した技術は、あくまで個人的な利用の範囲で、著作権を侵害しないように責任を持って使用してください。
この詳細な解説が、あなたがyt-dlpとffmpegを効果的に活用するための一助となれば幸いです。ぜひこれらの強力なツールを使いこなし、デジタルライフをより豊かなものにしてください。