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