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
こっちもありかも。