プログラム言語pythonにはYouTubeサイトから動画をダウンロードするライブラリがありますので、今回はそれを紹介しようと思います。
※動画のダウンロードは自己責任にてお願い致します。悪用厳禁。万一発生したいかなる損害につきましても当方では一切責を負いかねます。また、youtube側の仕様はコロコロ変わります。現在の方法では将来使えなくなるかもしれません。
# 忙しい人のために
とりあえずすぐ動くものだけ欲しいって人はコチラからwindows版exeファイルがダウンロード出来ます。
# 事前準備
# 用意するもの
- ・ GUI環境があるOS(winかmacなど)
- ・ python 3.6以上
- ・ pytube
- ・ pyinstaller(windowsの人は任意で)
# 環境構築
pythonはすでにインストールされていて、実行できる状態になっている前提で話しを進めます。また、dockerなどの仮想環境上では上手く動かない場合があります。
まず、上記コマンドでpytubeをインストールしましょう。windowsの方で実行形式に変換したい人はpyinstallerも。
# まずはダウンロード部分を作ってみる
最低限これだけでもダウンロード出来ます。
と実行してinputのところに動画のurlをコピペしてやれば、これだけのコードでダウンロードされ、実行したpythonファイルと同じディレクトリにmp4形式で保存されます。わざわざ低解像度のものをダウンロードする意味は無いと思うので、最高解像度が自動で選ばれるようにしています。
作り込むのが面倒な人はこれでも十分使えます。でもこれじゃ味気ないので、プログラミング未経験者でもGUIで簡単に操作出来るようにダイアログボックスなどのGUI部分を実装しましょう。
# GUI部分も実装する
# GUI実装にはtkinterモジュールを使う
pythonに標準でインストールされているので、pipインストールの必要はありません。プログラム上でimportするだけです。
上記画像のダイアログボックスはこのようにして作られています。コマンド一つで簡単に作られてるわけではなく、結構面倒くさいです。
各命令の意味は見ればだいたい理解可能かと思いますので細かくは割愛します。画面サイズや説明文などは自由に変更しても全く問題ありません。
唯一注意すべきなのは、一番下の決定ボタンの部分、
という書き方をしないとボタンイベントの関数に引数を渡せないので(command=関数名(引数)ではエラーになる)注意が必要です。引数が必要ない関数ならcommand=functionのように表記できます。
# ボタンが押された時の処理を書く
ボタンイベント時の関数をbtnClickとすると、このようになります。
最初に作ったものに名前を付けて保存を付け加えただけです。お馴染みのダイアログボックスが出てきます。
# 出来上がったものは
このようになりました。サイズや表示位置など気に入らない人は自由に変更してみて下さい。
# 実行形式exeファイルにしてみる(windowsのみ)
これらのpythonファイルを実行するときにはターミナルから
のように実行しなければなりません。毎回では面倒くさいのでデスクトップ画面からダブルクリックで実行できるようにしてみたいと思います。
実行形式への変換にはpyinstallerを使います。まだインストールしていない人は
でインストールできます。インストールしたら変換したいpythonファイルがあるディレクトリで
と実行しましょう。youtube.pyの部分は自分のファイル名で置き換えてください。変換が完了すると、distとbuildという2つのディレクトリが出来ます。このうちdistディレクトリの中に実行形式のファイルが保存されています。
macにも似たようなものがあるかもしれませんが知らないのでwindowsのみの紹介になります。