「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からモジュールとして利用する形は、また別の機会に検証します。