ここでは、「pytube」を用いて任意のYoutube動画をダウンロードする方法について解説しています。
「pytube」を用いれば、好きな動画を自動でダウンロードできたり可能で、便利なライブラリです。
この記事の対象
「pytube」とは
「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">