以前の記事(pythonでYouTubeアップロード(YouTubeAPI)、pythonを仮想環境で実行ファイル化、pythonファイル参照GUIの作成)では、以下を行ってきました。
記事名 | 内容 |
pythonでYouTubeアップロード(YouTubeAPI) | YouTubeAPIを利用したpythonによる動画のアップロード |
pythonを仮想環境で実行ファイル化 | pythonで作成したプログラムを実行可能ファイル化(exe化) |
pythonファイル参照GUIの作成 | 任意のファイルを選択させるダイアログを表示 |
今回はこれらを組み合わせて、選択したフォルダ配下にある動画ファイルのYouTubeへのアップロードコマンドを自動作成するプログラムを作成していきたいと思います。
このプログラムで自動作成するコマンド
以下のコマンドを選択したフォルダ配下に存在するファイル数分だけ作成します。
1 |
[exe化したいpythonファイル名].exe --file [アップロードするファイルのパス] --noauth_local_webserver --title [動画のタイトル] --description [動画の説明] --keywords [動画のタグ] |
作成したコマンドはyoutubeupload.batと言うファイルに保存されます。
youtubeupload.batを実行することで、youtubeへの動画アップロードが自動で行われます。
成果物を利用した例です。前回の記事以降、合計で129本の動画を上げたので再生リスト化しています。
動作確認済みの環境
- Windows8
- python3.8
pythonのソースコード
以下です。
後述する利用モジュールのインポート済みの環境で動作します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# coding: UTF-8 # モジュールのインポート import tkinter, tkinter.filedialog import glob # Const # コマンド定数 EXE_OP_FILE='[exe化したいpythonファイル名].exe --file ' OP_NOAUTH=' --noauth_local_webserver' OP_TITLE=' --title ' OP_DESCRPT=' --description ' OP_KEYWORDS=' --keywords [キーワード(カンマ区切り)]' RETURN = '\n' # 選択フォルダ配下のファイルを指定する文字列(mp4を指定) SEARCH_OBJ_SENTENCE='\\**\\*.mp4' # 拡張子mp4 # ファイル作成 outfile = open('youtubeupload.bat', 'w') # 画面表示の開始 root = tkinter.Tk() root.withdraw() fTyp = [("","*")] # フォルダ選択ダイアログ dir = tkinter.filedialog.askdirectory() for f in glob.glob(dir + SEARCH_OBJ_SENTENCE): # 指定したフォルダ以下の要素分だけループ batCom = '' fName = f.split('\\')[-1] # ファイル名(拡張子あり) fName2 = fName.split('.')[0] # ファイル名(拡張子なし) folName = str(f) batCom = EXE_OP_FILE + folName + OP_NOAUTH + OP_TITLE + fName2 + OP_DESCRPT + fName2 + OP_KEYWORDS + RETURN # コマンド生成 # ファイルへの書き込み outfile.write(batCom) outfile.close() |
プログラムを実行すると、フォルダ選択ダイアログが表示されます。
また、動画のタイトルや動画の説明は、ファイル名がそのまま格納されるようになっています。また、動画ファイルの拡張子はmp4に固定しています。(修正方法は後述します。)
利用モジュール
tkinter、globモジュールを利用しています。必要に応じてインストールします。
1 2 |
pip install glob pip install tkinter |
モジュール名 | 説明 |
tkinter | GUIの標準のモジュールです。 フォルダ選択のダイアログを表示するのに利用しています。 |
glob | 引数に指定されたパターンにマッチするファイルパス名を 取得することが出来ます。 選択したフォルダ以下に存在する動画ファイル(mp4)を 取得するのに利用しています。(サブフォルダ以下も走査します。) |
ソースコード利用の簡単な説明
次の4つを修正して利用します。
exeファイル名の指定、タグの指定、動画のタイトル・説明の指定、参照ファイルの拡張子の変更
修正内容 | 修正箇所 |
exeファイル名の指定(※) | 修正前:EXE_OP_FILE=’[exe化したいpythonファイル名].exe –file ‘ 修正後:EXE_OP_FILE=’youtubeupload.exe –file ‘ |
タグの指定 | 修正前:OP_KEYWORDS=’ –keywords [キーワード(カンマ区切り)]‘ 修正後:OP_KEYWORDS=’ –keywords 作業用BGM,メドレー,NCS‘ |
動画のタイトル・説明の指定 | 修正前:batCom = EXE_OP_FILE + folName + OP_NOAUTH + OP_TITLE + fName2 + OP_DESCRPT + fName2 + OP_KEYWORDS + RETURN # コマンド生成 修正後:batCom = EXE_OP_FILE + folName + OP_NOAUTH + OP_TITLE + ‘【作業用BGM】NCSメドレー‘ + OP_DESCRPT + ‘好きなNCSを取りまとめました。参照URLhttp://…‘ + OP_KEYWORDS + RETURN # コマンド生成 |
参照ファイルの拡張子の変更 | 修正前:SEARCH_OBJ_SENTENCE=’\**\*.mp4‘ # 拡張子mp4 修正後:SEARCH_OBJ_SENTENCE=’\**\*.wmv‘ # 拡張子wmv |
(※)以下の記事で作成したexeファイル名を指定します。
おわりに
選択したフォルダ配下にある動画ファイルのYouTubeへのアップロードコマンドを自動作成する処理をプログラミングしました。

Youtubeへの動画アップロードは、わかりやすいGUIが準備されていますが、複数の動画を連続してアップロードするには少々手間がかかります。
このプログラㇺを利用することで複数の動画を順次アップロードすることが出来るので、チャンネルの引っ越しなどに活用できそうです。

コメント