この記事ではPythonでYouTubeの動画を操作する方法について解説します。
Googleの公式APIは準備に時間がかかりますが、pytubeを使えばすぐにPythonでYouTubeにアクセスすることが出来ます。
PythonとYouTubeの関係について知りたい。
PythonでYouTubeの動画を扱いたい。
今回の記事ではこのように思っている方に向けて、
【基礎】PythonとYouTubeについて
【基礎】YouTube Data APIとは
【実践】PythonでYouTubeの動画を取得する方法
について解説をしていきます。
PythonでYouTubeにアクセスしてみましょう。
なお、Pythonの記事については、こちらにまとめています。
PythonとYouTube
本題に入る前に、PythonとYouTubeの関係について解説します。
YouTubeのシステムではPythonが使われているのをご存知でしょうか。
もちろんPythonだけで構成されているわけではありませんが、PythonはYouTubeの中でも重要な位置にいます。
Pythonの学習では味気のないサンプルコードばかりで実感が湧きませんが、実際に動くものに触れるのはとても重要ですね。
YouTube Data APIとは
YouTubeは公式でもAPIを提供しています。
YouTubeのAPIでは、チャンネルの情報や再生リストの情報、動画の情報や検索結果を取得することが出来ます。
このYouTube APIを使えば、アップロードした動画の再生数などの情報を取得してデータ分析をするための準備をすることが出来ます。
しかし、APIの導入にはAPIキーの発行など、機能が豊富である分の手間がかかってしまいます。
そこで、今回はpytubeというサードパーティ製のパッケージを使っていきます。
PythonでYouTubeの動画を取得する方法
ここからはpytubeを使ってYouTubeの動画を取得してみましょう。
pytubeを使えば簡単に動画を取得することが出来ます。
ただしダウンロードする動画によっては法律に触れる恐れがあるので自分でアップロードした動画にのみ適用してみてください。
pytubeをインストールする
pytubeはサードパーティ製のパッケージなのでpipでインストールする必要があります。
このコマンドを実行してインストールしましょう。
pip install pytube
pytubeで動画をダウンロードする
それでは早速pytubeで動画をダウンロードしてみましょう。
こちらのコードをご覧ください。
from pytube import YouTube video = YouTube('YouTubeの動画アドレス') for itag_list in video.streams.all(): print(itag_list) stream = video.streams.get_by_itag(160) stream.download()
このコードを実行すると、指定したYouTubeの動画アドレスの動画をダウンロードすることが出来ます。
まずはpytubeから使う機能を指定してimportをしています。
次にインスタンスを作ってfor文を回しています。
for文ではvideo.streams.all関数を実行することでファイル形式を一覧で見ることが出来ます。
そのファイル形式に付属しているitagを、video.streams.get_by_itag関数に渡すことでその形式でダウンロードすることが出来ます。
最後のstream.download関数では何も引数を渡さなければ現在のディレクトリに、引数にパスを渡せばその場所にダウンロードされた動画を配置します。
とても簡単にYouTubeの動画をダウンロードすることが出来ましたね。
まとめ
この記事ではPythonとYouTubeの関係やYouTube Data APIについて、pytubeで動画をダウンロードする方法についてを解説しました。
PythonはYouTubeのシステムでも使われるほど、身につければ強力な武器になる言語です。
pytubeで動画をダウンロードする場合は著作権に気をつけましょう。
より高度な情報を取得したい方はぜひ、YouTube Data APIについても調べてみてください。
なお、今Pythonを学習している方は以下の記事もどうぞ。
はじめてPythonを使う方でもわかりやすいように、Pythonでできることやその学習法などを中心にまとめています。
復習にも使えると思いますので、ぜひ一度ご覧になってみてくださいね。
【Python 入門完全攻略ガイド】