【Python】YouTubeの動画を高速にダウンロードする方法

【Python】YouTubeの動画を高速にダウンロードする方法 プログラミング

「PythonでYouTubeの動画を高速にダウンロードしたい」
「Pythonからyt-dlpを利用したい」

このような場合には、この記事の内容が参考となります。
この記事では、PythonでYouTubeの動画を高速にダウンロードする方法を解説しています。

本記事の内容

  • yt-dlp(Pythonライブラリ)とは?
  • yt-dlp(Pythonライブラリ)のシステム要件
  • yt-dlp(Pythonライブラリ)のインストール
  • yt-dlp(Pythonライブラリ)の動作確認

それでは、上記に沿って解説していきます。

yt-dlp(Pythonライブラリ)とは?

yt-dlpとは、YouTubeから高速に動画をダウンロードするためのツールです。
詳細は、以下で説明しています。

この記事ではPythonライブラリという側面にフォーカスを当てています。
yt-dlpは、ツールでもライブラリでもあるということです。

ツールのみとしての利用であれば、バイナリをダウンロードするだけで済みます。
しかし、Pythonのライブラリとして利用する場合はそうではありません。

Pythonのライブラリとして利用する場合、Pythonからyt-dlpを動かすことができます。
Pythonから動かすことができると、yt-dlpを利用する幅が広がります。

もちろん、普通にコマンドラインツールとしても利用は可能です。
そのため、Pythonのライブラリとしてインストールすることをオススメします。

以上、yt-dlp(Pythonライブラリ)の説明でした。
次は、yt-dlp(Pythonライブラリ)のシステム要件を説明します。

yt-dlp(Pythonライブラリ)のシステム要件

現時点(2022年4月)でのyt-dlpの最新バージョンは、2022.3.8.2となります。
この最新バージョンは、2022年3月9日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

また、サポート対象となるPythonのバージョンはPython 3.6以降となっています。
setup.pyには、次のバージョンが記載されています。

  • Python 3.6
  • Python 3.7
  • Python 3.8

上記のように記載されていますが、Python 3.6以降なら問題なく動きます。
Python 3.9とPython 3.10で動くのを確認済みです。

また、以下はPython公式開発サイクルです。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

一般的には、Python 3.7以降が推奨されるバージョンになります。
よって、この記事でもPython 3.7以降をオススメしておきます。

以上、yt-dlp(Pythonライブラリ)のシステム要件を説明しました。
次は、yt-dlp(Pythonライブラリ)のインストールを説明します。

yt-dlp(Pythonライブラリ)のインストール

まずは、現状のインストール済みパッケージを確認しておきます。

$ pip list
Package    Version
---------- -------
pip        22.0.4
setuptools 62.0.0
wheel      0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、yt-dlpのインストールです。
yt-dlp(Pythonライブラリ)のインストールは、以下のコマンドとなります。

pip install yt-dlp

yt-dlpのインストールは、すぐに終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。

$ pip list
Package       Version
------------- ----------
Brotli        1.0.9
mutagen       1.45.1
pip           22.0.4
pycryptodomex 3.14.1
setuptools    62.0.0
websockets    10.2
wheel         0.36.2
yt-dlp        2022.3.8.2

yt-dlpは、複数のパッケージに依存していますね。
あと、yt-dlpの本体となるバイナリもダウンロードされています。

インストールが成功したら、次のコマンドが利用可能になっています。

$ yt-dlp --version
2022.03.08.2

バイナリの場所を知りたい場合は、次のコマンドで確認できます。

$ which yt-dlp 
[環境で異なる]/bin/yt-dlp

以上、yt-dlp(Pythonライブラリ)のインストールを説明しました。
次は、yt-dlp(Pythonライブラリ)の動作確認を説明します。

yt-dlp(Pythonライブラリ)の動作確認

この記事では、yt-dlpのライブラリとしての側面にフォーカスしています。
そして、そのためのインストール方法を上記で説明しています。

よって、動作確認もそれに合わせた内容とします。
Python APIとして利用する方法を解説します。

そのためのサンプルコードは、以下となります。

from yt_dlp import YoutubeDL

ydl_opts = {'format': 'best'}
with YoutubeDL(ydl_opts) as ydl:
    result = ydl.download(['https://www.youtube.com/watch?v=afrguHxe2zE'])
    print(result)

上記のPythonコードは、次のコマンドと同じ処理を実行しています。

yt-dlp -f best https://www.youtube.com/watch?v=afrguHxe2zE

コマンドとコードを比較すれば、コードの内容は理解できるはずです。
成功時には、result変数には「0」が入ります。

上記のコードを実行した場合の結果は、以下。

[youtube] afrguHxe2zE: Downloading webpage
[youtube] afrguHxe2zE: Downloading android player API JSON
[info] afrguHxe2zE: Downloading 1 format(s): 22
[download] Destination: 【LIVE_同時通訳】ウクライナ ゼレンスキー大統領が日本の国会で演説 [afrguHxe2zE].mp4
[download] 100% of 79.89MiB in 00:07               
0

7秒で約80MBの動画をダウンロードしています。
最終行の「0」は、resultの表示です。

以上、yt-dlp(Pythonライブラリ)の動作確認を説明しました。

タイトルとURLをコピーしました