【Python応用】pytubeで任意のYoutube動画をダウンロードする方法

Python

ここでは、「pytube」を用いて任意のYoutube動画をダウンロードする方法について解説しています。

この記事の対象

  • 「pytube」について知りたい方
  • Youtube動画をPythonでダウンロードしたい方
  • 自動化に挑戦したい方
スポンサーリンク
スポンサーリンク

「pytube」とは

https://pytube.io/en/latest/ より

pytube」とはYoutube上の動画をダウンロードできるライブラリになります。

また、オプションで取得できる動画をmp3にすることができたりする便利なライブラリでもあります。

pytubeのインストール

外部ライブラリなので、以下の様にpipでインストールしておく必要があります。

$ pip install pytube

プログラム

from pytube import YouTube
#1---ダウンロードしたい動画のURLを指定
yt = YouTube('https://www.youtube.com/watch?v=fLexgOxsZu0&ab_channel=BrunoMars')
stream = yt.streams.first()
stream.download()

以下は解説になります。

#1---ダウンロードしたい動画のURLを指定
yt = YouTube('https://www.youtube.com/watch?v=fLexgOxsZu0&ab_channel=BrunoMars')

1の部分では「YouTube()」の中で任意のURLを指定しています。

stream = yt.streams.first()
stream.download()

次に「streams.first()」で形式を指定しています。ここでは特に形式を指定していません。

最後にダウンロードをしています。

結果

「Bruno Mars」の動画が3gpp形式でダウンロードできていることが確認できます。

形式を指定したダウンロード

yt.streams.filter()の型

「pytube」は形式を指定してダウンロードすることが可能です。初めにダウンロードしたい動画にどんな形式があるのか調べます。

yt.streams.filter()

これを「print」するだけで対象のURLの動画の形式を調べることができます。

【結果】

[<Stream: itag="17" mime_type="video/3gpp" res="144p" fps="8fps" vcodec="mp4v.20.3" acodec="mp4a.40.2" progressive="True" type="video">, <Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2" 
...

実際に形式を指定したダウンロード方法は以下になります。

形式を指定したダウンロード例

from pytube import YouTube

yt = YouTube('https://www.youtube.com/watch?v=fLexgOxsZu0&ab_channel=BrunoMars')
stream = yt.streams.get_by_itag(22)
stream.download()

形式を指定する場合は「yt.streams.get_by_itag()」を用いることで簡単に指定できます。引数の数値は「yt.streams.filter()」で調べて任意の「itag=”***”」を指定します。

今回は22を指定しています。ちなみに内容は以下になります。

<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2" progressive="True" type="video">

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