Pythonでpytubeライブラリを使ってみた


前から気になっていたので、動作検証がてら触ってみた。
なお、今回はMBAとPythonista使用で使用できるか試してみる。

1. pytubeとは

  • Youtubeの動画をDLするためのPythonライブラリ
  • 軽量かつ依存性のないライブラリ

2. インストール方法

基本的にpipでDLする。

2.1.MBA端末の場合(macOS iOS 10.13.3)

※pipの導入方法は割愛(他のQitia記事などを参照)

#①事前確認コマンド(※pytubeが既にインストールされていないことの確認)
$ pip list | grep pytube

#②pytubeのインストール(※今回は、最新のVersionをインストールする前提)
$ pip install pytube 

#③事後確認(※展開されたロケーションの確認も含む)
$ pip list | grep pytube
$ pip show pytube

(env_youtube_dl) MBA:Python_work $ 
(env_youtube_dl) MBA:Python_work $ pip list
Package    Version
---------- -------
pip        10.0.1 
setuptools 39.0.1 
(env_youtube_dl) MBA:Python_work $ 
(env_youtube_dl) MBA:Python_work $ pip install pytube
Collecting pytube
  Using cached https://files.pythonhosted.org/packages/ff/4e/a499f2a002c6fa922979441104cca30ac4b5119bd5320292ea0edfeb12d9/pytube-9.2.2.tar.gz
Installing collected packages: pytube
  Running setup.py install for pytube ... done
Successfully installed pytube-9.2.2
(env_youtube_dl) MBA:Python_work $ 
(env_youtube_dl) MBA:Python_work $ pip list
Package    Version
---------- -------
pip        10.0.1 
pytube     9.2.2  
setuptools 39.0.1 
(env_youtube_dl) MBA:Python_work $ 
(env_youtube_dl) MBA:Python_work $ pip show pytube
Name: pytube
Version: 9.2.2
Summary: A pythonic library for downloading YouTube Videos.
Home-page: https://github.com/nficano/pytube
Author: Nick Ficano
Author-email: [email protected]
License: Copyright (c) 2017 Nick Ficano
Location: /Users//Python_work/env_youtube_dl/lib/python3.6/site-packages
Requires: 
Required-by: 
(env_youtube_dl) MBA:Python_work $ 

2.2.Pythonista3の場合

※pipを使用するためには、StaShの導入が必要となる
※StaShおよびpipの導入方法は割愛(他のQitia記事などを参照)

#①事前確認コマンド(※pytubeが既にインストールされていないことの確認)
$ pip list | grep pytube

#②pytubeのインストール(※今回は、最新のVersionをインストールする前提)
$ pip install pytube 

実行ログ(例)

3.使い方

今回は一番簡単な例を紹介する。
他にもいろいろ使い方はあると思うので、もっと詳しくやりたいと思う人は以下サイトを参照。

3.1.MBA端末の場合(macOS iOS 10.13.3)

#①Pythonインタプリタの起動
$ python

#②パスの確認(※今回はpytubeのパスが通ってなかったので設定している)
>>> import sys
>>> print(sys.path)
>>> sys.path.append('/Users/hoge/Python_work/env_youtube_dl/lib/python3.6/site-packages')
>>> print(sys.path)

#③pytubeの実行
>>> from pytube import *
>>>YouTube('https://www.youtube.com/watch?v=OjeHDa4OPvw').streams.first().download()

(env_youtube_dl) MBA:work_youtube $ python
Python 3.6.5 (default, Jun 17 2018, 12:13:06) 
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> import sys
>>> print(sys.path)
['', '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6', '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/Users//Library/Python/3.6/lib/python/site-packages', '/usr/local/lib/python3.6/site-packages']
>>> 
>>> sys.path.append('/Users//Python_work/env_youtube_dl/lib/python3.6/site-packages')
>>> print(sys.path)
['', '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6', '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', '/Users//Library/Python/3.6/lib/python/site-packages', '/usr/local/lib/python3.6/site-packages', '/Users//Python_work/env_youtube_dl/lib/python3.6/site-packages']
>>> 
>>> from pytube import *
>>> 
>>> YouTube('https://www.youtube.com/watch?v=OjeHDa4OPvw').streams.first().download()
>>> 
(env_youtube_dl) MBA:work_youtube $ 
(env_youtube_dl) MBA:work_youtube $ ll
total 663552
-rw-r--r--  1   staff  331551735  7  7 15:58 3_03 Pythonistaよ、Pythonistaを知っているか 〜こんなの欲しかった! iOSアプリ開発環境Pythonista〜.mp4
(env_youtube_dl) MBA:work_youtube $ 

3.2.Pythonista3の場合

#①pytubeの実行
>>> from pytube import *
>>>YouTube('https://www.youtube.com/watch?v=OjeHDa4OPvw').streams.first().download()

実行ログ