#IPFactory Advent Calender 2019 4日目
大層な記事を書けるほどの知識はありませんが、4日目書かせていただきます。
IPFactory所属、ISC 1年のpycysです。
##pytubeとは
Pythonのライブラリです。
YouTube上の動画を簡単にダウンロードできます。
##環境
- Windows 10 Pro
- Python 3.7.4
##インストールしよう
pip install pytube
上記をbashなりコマンドプロンプトなりに打ち込めばインストールされます。
#注意
ダウンロードする前に動画の投稿者のチャンネル名を見てください。
チャンネル名の横にチェックマークがついていない場合、
ダウンロードしたらYouTubeの規約に違反してしまいます。
##動画をダウンロードしてみよう
早速ダウンロードしてみましょう。
from pytube import YouTube
YouTube(input("ダウンロードしたい動画のURL:")).streams.first().download()
上記のコードをコピペして実行してみてください。
URL聞かれたら動画のURL貼り付けてEnter。
正常に動作した場合、同じフォルダに動画ファイルができたはずです。
##保存するフォルダを指定する
from pytube import YouTube
YouTube(input("ダウンロードしたい動画のURL:")).streams.first().download(r"フォルダのパス")
保存するフォルダを指定したい場合は、downloadメソッドの引数に保存先フォルダのパスを渡しましょう。
フォルダパスを指定するので、rをつけてエスケープシーケンスを無効化するのも忘れずに。
もしダウンロードする時に動画ファイルの名前を変更したい場合は、downloadメソッドの第二引数に付けたい名前を設定しましょう。
##解像度やフォーマット等を指定してみる
from pytube import YouTube
url = input("ダウンロードしたい動画のURL:")
print(*YouTube(url).streams.all(), sep="\n")
itag = int(input("ダウンロードしたい動画のタグ:"))
YouTube(url).streams.get_by_itag(itag)).download()
今度はこちらのコードを実行してみてください。
実行した直後にURLを求められるので、入力してEnter。
するとこんな感じの文字列が返ってきましたね?
(フォーマットが似ていれば大丈夫です)
<Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2">
<Stream: itag="43" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp8.0" acodec="vorbis">
<Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2">
<Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.640028">
<Stream: itag="248" mime_type="video/webm" res="1080p" fps="30fps" vcodec="vp9">
<Stream: itag="136" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.4d401f">
<Stream: itag="247" mime_type="video/webm" res="720p" fps="30fps" vcodec="vp9">
<Stream: itag="135" mime_type="video/mp4" res="480p" fps="30fps" vcodec="avc1.4d401f">
<Stream: itag="244" mime_type="video/webm" res="480p" fps="30fps" vcodec="vp9">
<Stream: itag="134" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.4d401e">
<Stream: itag="243" mime_type="video/webm" res="360p" fps="30fps" vcodec="vp9">
<Stream: itag="133" mime_type="video/mp4" res="240p" fps="30fps" vcodec="avc1.4d4015">
<Stream: itag="242" mime_type="video/webm" res="240p" fps="30fps" vcodec="vp9">
<Stream: itag="160" mime_type="video/mp4" res="144p" fps="30fps" vcodec="avc1.4d400c">
<Stream: itag="278" mime_type="video/webm" res="144p" fps="30fps" vcodec="vp9">
<Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2">
<Stream: itag="249" mime_type="audio/webm" abr="50kbps" acodec="opus">
<Stream: itag="250" mime_type="audio/webm" abr="70kbps" acodec="opus">
<Stream: itag="251" mime_type="audio/webm" abr="160kbps" acodec="opus">
これらはダウンロード可能なフォーマットや解像度等の組み合わせであり、
この中からダウンロードしたい組み合わせのitagの値を指定することでダウンロードできます。
返ってきた組み合わせから良さげなものを選んで、itagの値を入力してみましょう。
入力した値が間違っていなければ、選んだファイルがダウンロードされたはずです。
##最後に
以上になります。
誤った情報や誤字脱字、分かりにくい点等ありましたらご指摘ください。
最後まで読んでいただきありがとうございました。