# youtube-dlの使い方

# youtube-dlとは

youtube-dlは、Youtubeの動画をダウンロードできるCLIツールです。

ちなみにPython製です。


  • 画質を選べる
    • 高画質(フルHD)
    • 低画質 ...
  • 音声のみ
  • ストリーミング配信対応
  • 自動化

などなど、いろいろできます。


Youtubeだけでなく、niconicoだったりgyaoだったりでもダウンロード可能なのでやってみると面白いかも?

FFmpegを入れておくと画質面などで良かったりするのでおすすめ。

TIP

FFmpegはここからインストールできます。

https://www.ffmpeg.org/ (opens new window)

# インストール

以下の2つを使用する場合は、自動的にパスが設定されるのでパスを通す必要はないです。

# ◆ Scoop

scoop install youtube-dl

# ◆ Python(pip)

pip install youtube-dl

# ◆ EXE(実行ファイル)

クリックして展開

パスは自分で設定します。

  1. ここ (opens new window)にアクセスします

  2. Downloadをクリックします

    2019-10-24
  3. Windows.exeをクリックすると、ダウンロードが始まります

    2019-10-24_2
  4. ダウンロードしたファイルを、別の場所に移すなどしてパスを通します

    環境変数の設定方法

    1. スタートメニュー(Windowsキー)でenvと入力し、システム環境変数の編集をクリックします

      image-20191027014706886
    2. 環境変数(N)をクリックします

    3. ユーザー環境変数の中からPathをクリックして、編集を選択します

    4. 新規をクリックし、.exeを置いたディレクトリのパスを指定します

    5. OKをクリックして適用します



インストール確認

youtube-dl --version

コマンドを実行してエラーが出ていなければOKです。

# 使い方

よく使うコマンド例です。

# ◆ DL

一番基本のダウンロード方法です。

画質・音質は決められたものがダウンロードされます。

option:なし

youtube-dl <url>

# ◆ 音のみ

音のみをダウンロードできます。

option:-x / --extract-audio

youtube-dl -x <url>
# or
youtube-dl --extract-audio <url>

# ◆ DL可能なフォーマットリストを取得

YouTubeのリンクからダウンロード可能なフォーマットリストを取得します。

option:-F / --list-formats

youtube-dl -F <url>
# or
youtube-dl --list-formats <url>

※ ダウンロードは実行されません。

audio only tinyと書かれているものは音フォーマットで、それ以外は動画フォーマットです。

実行例(クリックして展開)
[youtube] 9sc0miJOvjQ: Downloading webpage
[youtube] 9sc0miJOvjQ: Downloading video info webpage
[info] Available formats for 9sc0miJOvjQ:
format code  extension  resolution note
249          webm       audio only tiny   53k , opus @ 50k (48000Hz), 1.39MiB
250          webm       audio only tiny   71k , opus @ 70k (48000Hz), 1.85MiB
140          m4a        audio only tiny  131k , m4a_dash container, mp4a.40.2@128k (44100Hz), 3.75MiB
251          webm       audio only tiny  134k , opus @160k (48000Hz), 3.69MiB
160          mp4        146x144    144p   50k , avc1.4d400b, 25fps, video only, 736.23KiB
278          webm       146x144    144p   69k , webm container, vp9, 25fps, video only, 940.67KiB
133          mp4        242x240    240p  113k , avc1.4d400c, 25fps, video only, 1.55MiB
242          webm       242x240    240p  155k , vp9, 25fps, video only, 1.81MiB
134          mp4        362x360    360p  207k , avc1.4d4015, 25fps, video only, 3.04MiB
243          webm       362x360    360p  264k , vp9, 25fps, video only, 3.00MiB
135          mp4        484x480    480p  422k , avc1.4d401e, 25fps, video only, 5.33MiB
244          webm       484x480    480p  446k , vp9, 25fps, video only, 5.13MiB
247          webm       726x720    720p  835k , vp9, 25fps, video only, 10.33MiB
136          mp4        726x720    720p  939k , avc1.4d401f, 25fps, video only, 11.25MiB
18           mp4        364x360    360p  342k , avc1.42001E, mp4a.40.2@ 96k (44100Hz), 9.91MiB (best)

# ◆ DLフォーマットを指定

-Fで取得したフォーマットでダウンロードします。

option:-f / --format

youtube-dl -f <fmt> <url>
# or
youtube-dl --format <fmt> <url>

NOTE

画質を指定した場合は動画のみ、音質を指定した場合は音のみがダウンロードされる。
そのため、両方をダウンロードするにはオプションで結合するように書く必要があります。

参照:#画質と音質を指定する

# ◆ 最高画質を指定

bestvideoで最高画質を指定します。

youtube-dl -f bestvideo <url>

# 拡張子を指定する

[ext=mp4]の部分で拡張子を指定します。

youtube-dl -f bestvideo[ext=mp4] <url>

フォーマットリストにないものはできないので、mp4が無難です。

# ◆ 最高音質を指定

bestaudioで最高音質を指定します。

youtube-dl -f bestaudio <url>

# 拡張子を指定する

最高画質のときと同じように、[ext=m4a]の部分で拡張子を指定します。

youtube-dl -f bestaudio[ext=m4a] <url>

フォーマットリストにないものはできないので、m4aが無難です。

# ◆ 画質と音質を指定

画質・音質は+を使って、動画フォーマット音フォーマットの順に連結します。

指定したフォーマット2つを結合するオプションを指定します。

option:--merge-output-format

youtube-dl -f <video_fmt>+<audio_fmt> --merge-output-format <fmt> <url>

マージのフォーマットには [ mp4 / mkv / ogg / webm / flv ] があります。

TIP

動画フォーマット:137
音フォーマット :140
結合フォーマット:mp4の場合、以下のように指定します。

youtube-dl -f 137+140 --merge-output-format mp4 <url>

# 最高画質と最高音質

youtube-dl -f bestvideo+bestaudio --merge-output-format <fmt> <url>

NOTE

動画にした場合、以下のようなエラーになることがあります。

[youtube] XXXXXXXXXXX: Downloading webpage
[youtube] XXXXXXXXXXX: Downloading video info webpage
ERROR: The first format must contain the video, try using "-f 136+140"