pytubeでYouTube動画をダウンロードする【Python】

pytubeでYouTube動画をダウンロードする【Python】 プログラミング

「YouTubeから動画をダウンロードする」
これだけなら、適当なツールを使えばいいでしょう。

しかし、ダウンロードした動画をもとに次の処理を行いたい場合があります。
例えば、ダウンロードした動画からボーカル抽出をするといった場合などです。

このような場合は、Pythonで処理をまとめたくなります。
では、YouTubeからの動画ダウンロードもPythonでやってしまいましょう。

この場合に、pytubeというライブラリが役に立ちます。

本記事の内容

  • pytubeとは?
  • pytubeのシステム要件
  • pytubeのインストール
  • pytubeの動作確認

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

pytubeとは?

pytubeは、YouTube動画をダウンロードするためのPythonライブラリです。

  • 軽量
  • 他ライブラリへの依存がない

上記の特徴を持ったライブラリとなります。
同時に、pytubeはコマンドラインツールでもあります。

モジュールとして、Pythonのプログラム上からimportして利用できます。
コマンドラインツールとして、コンソール上でコマンドとしても使えます。

機能的には、動画のダウンロードに加えてサムネイルのURLも取得できます。
プレイリストの動画をまとめて、ダウンロードする機能も備わっています。

以上、pytubeのおおよそはつかめたでしょう。
次に、pytubeのシステム要件を確認します。

pytubeのシステム要件

pytubeの最新バージョンは、10.4.1となります。
この最新バージョンは、2020年12月29日にリリースされています。

対応しているOSは、以下。

  • macOS
  • Windows
  • Linux

大抵のOSをサポートしているということです。
また、サポートしているPythonのバージョンは、以下。

  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9

3.6以降であれば、問題ないということでしょう。
Pythonのバージョンさえクリアすれば、他には注意すべき点はありませんね。

なお、バージョンは以下のコマンドで確認。

>python -V
Python 3.8.6

Python 3.8.6なので、Pythonのバージョンはクリアしています。
では、pytubeをインストールしていきましょう。

pytubeのインストール

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

>pip list
Package    Version
---------- -------
pip        20.3.3
setuptools 51.1.2

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

python -m pip install --upgrade pip

では、pytubeのインストールです。
pytubeのインストールは、以下のコマンドとなります。

pip install pytube

インストールは一瞬で完了です。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package           Version
----------------- -------
pip               20.3.3
pytube            10.4.1
setuptools        51.1.2
typing-extensions 3.7.4.3

pytubeパッケージがインストールされているのは、OK。
でも、typing-extensionsとは何なのでしょうか?

確か、pytubeは他のライブラリに依存していなかったはずです。
公式では、そのように記載されていましたけど・・・

結論、typing-extensionsはPythonの互換性を維持するモノです。
そのため、pytubeは機能的には他のライブラリには依存はしていません。

最後に、pytubeの動作確認を行いましょう。

pytubeの動作確認

動作確認には、コンソール(コマンドプロンプト)で以下のコマンドを実行します。

>pytube -v
usage: pytube [-h] [--version] [--itag ITAG] [-r RESOLUTION] [-l] [-v] [--build-playback-report] [-c [CAPTION_CODE]] [-t TARGET] [-a [AUDIO]] [-f [FFMPEG]] [url]


Command line application to download youtube videos.


positional arguments:
  url                   The YouTube /watch or /playlist url


optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --itag ITAG           The itag for the desired stream
  -r RESOLUTION, --resolution RESOLUTION
                        The resolution for the desired stream
  -l, --list            The list option causes pytube cli to return a list of streams available to download
  -v, --verbose         Verbosity level, use up to 4 to increase logging -vvvv
  --build-playback-report
                        Save the html and js to disk
  -c [CAPTION_CODE], --caption-code [CAPTION_CODE]
                        Download srt captions for given language code. Prints available language codes if no argument given
  -t TARGET, --target TARGET
                        The output directory for the downloaded stream. Default is current working directory
  -a [AUDIO], --audio [AUDIO]
                        Download the audio for a given URL at the highest bitrate availableDefaults to mp4 format if none is specified
  -f [FFMPEG], --ffmpeg [FFMPEG]
                        Downloads the audio and video stream for resolution providedIf no resolution is provided, downloads the best resolutionRuns the command line program ffmpeg to combine
                        the audio and video

問題なく動いています。
これは、コマンドラインツールとしてのpytubeですね。

今回は、動作確認ということなので、コマンドラインツールで気楽に動画をダウンロードしてみます。

pytube https://www.youtube.com/watch?v=q_idIM9Aqbo  --itag=22

上記を実行すると、以下のように表示されます。

>pytube https://www.youtube.com/watch?v=q_idIM9Aqbo  --itag=22
Loading video...
【冒頭5分】令和2年2月29日安倍内閣総理大臣記者会見.mp4 | 31 MB
↳ |█████████████████████████████████████████████████████████████████████████████████████████████████████████| 100.0%

ちゃんとYouTubeから動画をダウンロードできています。
とりあえず、動作確認はこれで十分でしょう。

Pythonからモジュールとして利用する形は、また別の機会に検証します。

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