【youtube-dl】YouTubeの動画をダウンロードする方法

公開日:
更新日:
カテゴリー: サーバー

サーバー(私が使用しているのはCentOS7)に「youtube-dl」をインストールして、サーバー(SSHのターミナル)上でYouTube動画をダウンロードする方法を説明しています。

「youtube-dl」のインストール

まずはサーバーに「youtube-dl」をインストールします。

次のコマンドを実行します。

sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl

※「youtube-dl」とはPythonでつくられたツールで、たった一行のコマンドで動画を一撃ダウンロードできます(複雑な解析など不要で、YouTube以外の動画サイトには対応)

次に、インストールしたファイルに実行権限を設定します。

sudo chmod a+rx /usr/local/bin/youtube-dl

「wget」がない場合

サーバーに「wget」がない場合、次のように「wgetコマンドがないよ!」と怒られます。

wget: command not found

この時は次のようにして「wget」をインストールします。

sudo yum install wget

途中、下のように聞かれますが「y」(Yes)を入力すればあとは自動で「wget」がインストールされます。

Total download size: 547 k
Installed size: 2.0 M
Is this ok [y/d/N]: y

YouTube動画のダウンロード

「youtube-dl」のインストールが完了したら、次のようにすればYouTube動画をダウンロードできます。

youtube-dl https://youtu.be/KUQfc4P0Rr8

これで、サーバー内に指定したURLの動画がダウンロードされますが、ダウンロードされたファイルは「.mvk」形式となっています。これは、次のような流れで生成されます。

  1. 「mp4」形式のファイル(音声なし)がダウンロードされる
  2. 「webm」形式のファイル(音声のみ)がダウンロードされる
  3. 上でダウンロードされた2つのファイルを合成して「mvk」形式のファイルとなる(音声あり動画)
  4. 「mvk」形式のファイルが生成されたあとは、1と2でダウンロードされたファイルは削除される

もし、「mp4」(音声なし)と「webm」(音声のみ)ファイルを残したい場合は次のように「-k」オプションをつけます。

youtube-dl -k https://www.youtube.com/watch?v=YlHEqEYyAd0

すると、次のようにファイル削除されずに済みます。

もし、取得できるファイルをすべてダウンロードしたい場合は、

ダウンロードできるファイルの一覧を取得したい場合は、次のように「-F」オプションをつけます。

youtube-dl -F https://youtu.be/KUQfc4P0Rr8

これを実行すると次のようにダウンロードできるファイルとその詳細情報を確認できます。

[youtube] KUQfc4P0Rr8: Downloading webpage
[info] Available formats for KUQfc4P0Rr8:
format code  extension  resolution note
249          webm       audio only tiny   57k , opus @ 50k (48000Hz), 1.89MiB
250          webm       audio only tiny   77k , opus @ 70k (48000Hz), 2.50MiB
140          m4a        audio only tiny  130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 5.18MiB
251          webm       audio only tiny  151k , opus @160k (48000Hz), 4.99MiB
278          webm       256x144    144p   96k , webm container, vp9, 24fps, video only, 3.29MiB
160          mp4        256x144    144p  110k , avc1.4d400c, 24fps, video only, 3.06MiB
242          webm       426x240    240p  224k , vp9, 24fps, video only, 6.23MiB
133          mp4        426x240    240p  287k , avc1.4d4015, 24fps, video only, 6.02MiB
243          webm       640x360    360p  409k , vp9, 24fps, video only, 10.92MiB
134          mp4        640x360    360p  582k , avc1.4d401e, 24fps, video only, 11.16MiB
244          webm       854x480    480p  753k , vp9, 24fps, video only, 17.34MiB
135          mp4        854x480    480p  951k , avc1.4d401e, 24fps, video only, 16.16MiB
247          webm       1280x720   720p 1441k , vp9, 24fps, video only, 30.19MiB
136          mp4        1280x720   720p 1612k , avc1.4d401f, 24fps, video only, 25.87MiB
248          webm       1920x1080  1080p 2663k , vp9, 24fps, video only, 67.72MiB
137          mp4        1920x1080  1080p 4378k , avc1.640028, 24fps, video only, 84.08MiB
18           mp4        640x360    360p  588k , avc1.42001E, 24fps, mp4a.40.2@ 96k (44100Hz), 23.50MiB (best)

上のファイルで取得したいものを決めたら、次のようにすればそのファイルのみをダウンロードできます。

youtube-dl -f 18 https://youtu.be/KUQfc4P0Rr8

また、カンマ「,」で区切れば複数のファイルを指定できます。

youtube-dl -f 18,248 https://youtu.be/KUQfc4P0Rr8

また、次のように「best」などのワードを指定することもできます(自動で取得できるのでオススメ)。

youtube-dl -f best https://youtu.be/KUQfc4P0Rr8

一覧をまとめると以下です。

  • best:音声がある動画で高画質なもの
  • worst: 音声がある動画で低画質なもの
  • bestvideo: 音声がない動画で高画質なもの
  • worstvideo: 音声がない動画で低画質なもの
  • bestaudio: 高品質の音声ファイル
  • worstaudio: 低品質の音声ファイル

オプションについて

「youtube-dl」には次のようにさまざまなオプションがあります。オプションは複数組み合わせることができます。

動画タイトルの取得

動画のタイトルを取得する場合は「-e」オプションをつけます。

youtube-dl -e <YouTubeのURL>

指定のパスに保存する

サーバーの任意のディレクトリに動画を保存したい場合は「-o」オプションとパスを指定します。

youtube-dl -o "var/www/html/%(title)s.%(ext)s" <YouTubeのURL>

このようにすることで、「var/www/html」直下に指定したYouTube動画がダウンロードされます。

※パスの部分はダブルクォーテーション「"」で囲む必要があります

サムネイルの取得

動画のサムネイルも次のオプションをつければ取得できます。

youtube-dl --write-thumbnail <YouTubeのURL>

「youtube-dl」の更新

「youtube-dl」は開発者によって更新されます。そのため次のコマンドを使用して定期的にアップデートしましょう。

youtube-dl -U

その他のオプションは下のサイトにまとめられているので参考にしてください。

 

あわせて読んでほしい!

 

コメント

1:名無しさん:2020/12/03 16:33:27

管理人様、こんにちは。
日頃「ツイートの一括削除ツール」を利用させていただいており、こちらのツールの不具合について10月30日に別記事にてコメントさせて頂きたものです。
新しい記事が投稿され、管理人様がご無事なようで大変安心致しました。
お気づき出ないようですので、前回の文のコピーで大変恐縮なのですが御一読頂けますと幸いです。
素敵なツールを開発して下さり大変Twitterで活動するのが快適になり、管理人様には大変感謝しております。
その「ツイートの一括削除ツール」なのですが、今年5月頃からJavaScriptファイルをアップロード仕様とすると正常に処理されない状況が続いており、先ほどはツールを開いた瞬間「データ通信に失敗しました。もう一度お試しください」のメッセージがポップアップで表示され、延々リロードが続き、コメント欄へのアクセスやサイト内の他のページへのジャンプすらままならない状況となっております。
私が昨年こちらのツールを利用した際にはエラーは発生せず、皆様のコメントと個人の実感ですと今年5月からJavaScriptの正常アップロードができず、9、10月には延々リロードの状態になったように感じます。
7月、8月に管理人様のTwitterへご報告させていただいていたのですが、つい最近ブログの更新をされておりましたので再度こちらにてご連絡させていただきました。
大変便利なツールで、私含め利用の再会を待ち望んでいる方も多くおられると思います。
コメント欄の方でもかなり困っていらっしゃる方が多いようですので、管理人様もお忙しい中大変恐縮ですが、コメント欄の御一読、こちらの不具合についてのお返事を頂けましたら幸いです。
長文大変失礼いたしました。

2:名無しさん:2021/05/26 16:19:09

mvk -&gt; mkv

コメントフォーム
お名前
コメント