yt-dlpのダウンローダーにaria2を使う

aria2は、分割ダウンロードができるCLIツール。curlやwgetの数倍速い 爆速ダウンローダー aria2を使う #Linux - Qiita
aria2を使えば、(条件次第だが)非常に高速なダウンロードが可能(サーバー側に負担をかける可能性があります。注意。)

※コマンドはaria2cという名前になる

aria2単体でファイルのダウンロード

aria2c -x 8 -s 8 -k 1M (URL)
  • -x(--max-connection-per-server) : 1つのサーバーへのコネクション数上限。デフォルト:1
  • -s(--split) : 1回のダウンロードに使うコネクション数。デフォルト:5

よく分からないけど()、-xと-sを設定すれば分割ダウンロードできる。

  • -k(-min-split-size) : ファイルの最小分割サイズ。分割後のファイルサイズがこれより小さくなる場合は分割しない。デフォルト:20M

-kを小さくする(1Mは設定できる最小値)ことで、ファイルサイズが小さくても分割してくれるようになる。
※サーバー側の制限に引っかかることも多い

yt-dlpでaria2を使う

yt-dlpを使うと、youtubeや、他にも様々な動画サイトから簡単に動画をダウンロードできる。
使用可能な動画サイト一覧: https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md
※generic-extractorというどのサイトでも使える汎用抽出機能も備えており、ここに載っていないサイトからもダウンロードできるかもしれない。

yt-dlpの基本的な使い方

yt-dlp https://www.youtube.com/watch?v=xxxxxxxxxxxxxx
# プレイリスト
yt-dlp https://www.youtube.com/watch?v=xxxxxxxxxxx&list=xxxxxxxxxxxxxxxxxxxxxxxxxx
# あるユーザーの投稿動画すべて
yt-dlp https://www.youtube.com/@xxxxxxxx

基本的に、引数にURLを書くだけでうまくやってくれるはず。画質はデフォルトだと最高画質になる。(オプションで-fを使うことで変更可能)

yt-dlpでaria2を使う

yt-dlp --downloader aria2c --downloader-args "-x 8 -s 8 -k 1M" https://www.youtube.com/watch?v=xxxxxxxxxxxxxx

外部ダウンローダーを指定すれば、aria2を使うことができる。downloader-argsで分割ダウンロード用オプションを設定すればOK。

公式サイト
https://github.com/yt-dlp/yt-dlp
https://aria2.github.io/index-ja.html


【追記】

実際に比較してみたら、aria2を使わないで素のyt-dlpを使っても、ダウンロードスピートはあんまり変わらなかった。(原因不明。yt-dlpが内部で色々と最適化してるか、サイト側の制限に引っかかっているか…)
ちなみに、yt-dlpのオプションで-N 3とかを使うと、yt-dlp内部で並行ダウンロードの処理をしてくれます。

yt-dlp -N 3 https://youtube.com/watch?v=xxxxxxxxxx

こっちもありかも。