Pythonスクリプトを実行するにはJupyter notebookを立ち上げるなど若干の手間がかかります。今回はyt-dlp
とtkinter
を利用したシンプルなデスクトップアプリを作成し、それをMac/Windows環境でより便利に使用できるように、右クリックメニューやショートカットキーから実行する方法を紹介します。動画のダウンロードを自動化・簡素化するプロジェクトとして参考にしてください。
アプリの概要
今回作成するアプリケーションは、指定したURLの動画をダウンロードし、任意の保存先に保存するシンプルなツールです。yt-dlp
を使用して動画を取得し、tkinter
でGUI(グラフィカルユーザーインターフェース)を作成します。
ダウンロード完了後にアプリが自動終了する機能も実装し、さらにMacの右クリックメニューやショートカットキーからすぐに起動できるようにします。
必要なライブラリのインストール
このアプリケーションを作成するために、以下のライブラリが必要です。
1. yt-dlp
YouTubeや他の動画サイトから動画をダウンロードできるライブラリです。youtube-dl
のフォークで、機能の更新が頻繁に行われています。
インストールは簡単で、以下のコマンドを実行するだけです。
pip install yt-dlp
tkinter
tkinter
はPythonの標準ライブラリで、GUIアプリケーションを作成するために使用します。特別なインストールは不要です。
コード解説: GUIアプリの作成
では、コードを見ていきましょう。このアプリケーションは、URLと保存先を指定し、「ダウンロード」ボタンを押すと動画を保存先にダウンロードし、完了後にアプリが終了します。
import os
import yt_dlp
import tkinter as tk
from tkinter import filedialog, messagebox
# ダウンロード処理
def download_video():
url = url_entry.get() # URLエントリーから取得
save_path = save_path_entry.get() # 保存パスエントリーから取得
if not url:
messagebox.showerror("エラー", "動画のURLを入力してください。")
return
if not save_path:
messagebox.showerror("エラー", "保存先を指定してください。")
return
ydl_opts = {
'outtmpl': os.path.join(save_path, '%(title)s.%(ext)s') # 保存先とファイル名
}
try:
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
messagebox.showinfo("成功", "動画のダウンロードが完了しました!")
root.quit() # イベントループを終了
root.destroy() # ウィンドウを破棄してアプリを終了
except Exception as e:
messagebox.showerror("エラー", f"ダウンロード中にエラーが発生しました: {e}")
# 保存先フォルダ選択ダイアログ
def select_folder():
folder_selected = filedialog.askdirectory()
save_path_entry.delete(0, tk.END) # エントリーをクリア
save_path_entry.insert(0, folder_selected) # 選択したフォルダをセット
# GUIのセットアップ
root = tk.Tk()
root.title("動画ダウンローダー")
# URL入力用ラベルとエントリー
url_label = tk.Label(root, text="動画のURL:")
url_label.pack(padx=10, pady=5)
url_entry = tk.Entry(root, width=50)
url_entry.pack(padx=10, pady=5)
# 保存先選択用ラベルとエントリー
save_path_label = tk.Label(root, text="保存先フォルダ:")
save_path_label.pack(padx=10, pady=5)
save_path_entry = tk.Entry(root, width=50)
save_path_entry.pack(padx=10, pady=5)
# 保存先フォルダ選択ボタン
browse_button = tk.Button(root, text="フォルダ選択", command=select_folder)
browse_button.pack(padx=10, pady=5)
# ダウンロード開始ボタン
download_button = tk.Button(root, text="ダウンロード", command=download_video)
download_button.pack(padx=10, pady=20)
# アプリの起動
root.mainloop()
重要な部分の解説
download_video
関数:- 動画のURLと保存先を取得し、
yt-dlp
を使ってダウンロードします。ダウンロード後にroot.quit()
でアプリを終了します。
- 動画のURLと保存先を取得し、
- GUI部分:
tkinter
を使って、URLと保存先を入力するためのフィールド、フォルダ選択ボタン、そしてダウンロードボタンを作成しています。
- 保存先の選択:
filedialog.askdirectory()
を使って、ユーザーが任意のフォルダを選択できるようにしています。
動作確認とMacでのショートカット実行方法
動作確認
このスクリプトを保存して実行すると、動画のダウンロード用のGUIが表示されます。動画URLを入力し、保存先を指定して「ダウンロード」を押すと、指定のフォルダに動画が保存されます。
Macで右クリックメニューやショートカットキーから実行
1. Automatorを使った右クリックメニューへの追加
Automator
を使えば、右クリックメニューにこのスクリプトを追加できます。簡単に実行したい場合は以下の手順でサービスを作成します。
- 「Automator」を開き、「新規作成」→「クイックアクション」を選択。
- 「シェルスクリプトを実行」を追加し、以下のコマンドを記述:
python3 /path/to/your/script.py
- 「保存」を押し、サービス名を入力(例:
Download Video
)。 - これで右クリックメニューの「サービス」から実行できます。
2. ショートカットキーでの実行
ショートカットキーから実行したい場合も、Automator
で「アプリケーション」として作成し、「システム環境設定」→「キーボード」→「ショートカット」でショートカットキーを設定します。
Macでpy2appを使ってPythonスクリプトをアプリに変換する方法
Macでは、py2app
というツールを使ってPythonスクリプトをmacOSのネイティブなアプリケーション形式(.app)に変換することができます。これにより、ターミナルを開かなくても直接アプリケーションとして実行可能になります。
1. py2appのインストール
まず、py2app
をインストールします。以下のコマンドをターミナルで実行してください。
pip install py2app
2. setup.pyファイルの作成
次に、アプリ化するための設定ファイルsetup.py
をプロジェクトディレクトリに作成します。以下のような内容にします。
from setuptools import setup
APP = ['your_script.py'] # スクリプト名を指定
DATA_FILES = []
OPTIONS = {
'argv_emulation': True, # コマンドライン引数のサポート
'packages': ['yt_dlp'], # 使用しているライブラリを指定
}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
3. アプリケーションのビルド
setup.py
ファイルを作成したら、以下のコマンドを実行してアプリをビルドします。
python setup.py py2app
このコマンドを実行すると、dist
フォルダ内に.app
形式のファイルが生成されます。このファイルがMac上で実行可能なアプリケーションです。
4. アプリケーションの実行
生成された.app
ファイルは、Finderでダブルクリックするだけで実行できます。また、Launchpadに追加して他のアプリケーションと同様に扱うことも可能です。
5. 注意点
依存パッケージの指定: 使用する外部ライブラリ(例: yt_dlp
)をsetup.py
のpackages
オプションで指定しておくと、ビルド時にそれらも含まれます。
初回実行時の確認メッセージ: 初回実行時には、未署名のアプリケーションであるため、セキュリティ警告が表示されることがあります。これを回避するには、「システム環境設定」→「セキュリティとプライバシー」→「一般」タブからアプリを許可する必要があります。
Windowsでの右クリックメニューやショートカットキーからの実行方法
Windowsでは、Pythonスクリプトを右クリックメニューに追加するか、ショートカットキーからすぐに実行できるように設定する方法があります。以下、手順を解説します。
1. 右クリックメニューに追加する方法(レジストリを編集)
Windowsの右クリックメニュー(コンテキストメニュー)に、スクリプトを追加するにはレジストリを編集します。レジストリ編集は慎重に行ってください。
手順:
- レジストリエディタを開く:
- Windowsキー + Rを押して「ファイル名を指定して実行」を開き、
regedit
と入力してEnterキーを押します。
- Windowsキー + Rを押して「ファイル名を指定して実行」を開き、
- レジストリキーの作成:
- 以下のパスに移動します
HKEY_CLASSES_ROOT\Directory\Background\shell
shell
キーを右クリックして「新規」→「キー」を選び、キー名に実行したいスクリプトの名前(例:Download Video
)を付けます。
- 実行コマンドの追加:
- 新しく作成したキーを右クリックして「新規」→「キー」を選び、名前を「command」にします。
command
キーを選択し、右側の「(既定)」をダブルクリックして編集画面を開きます。- 以下のコマンドを値として入力します(Pythonのインストールパスとスクリプトパスは適宜変更してください)
"C:\path\to\python.exe" "C:\path\to\your_script.py"
- これで、任意の場所で右クリックして「Download Video」を選ぶと、スクリプトが実行されるようになります。
2. ショートカットキーでの実行
Pythonスクリプトをショートカットキーで実行するには、スクリプトのショートカットを作成し、そのショートカットにキーを割り当てます。
手順:
- ショートカットを作成:
your_script.py
のある場所で右クリックし、「ショートカットの作成」を選択します。
- ショートカットキーの割り当て:
- 作成したショートカットを右クリックし、「プロパティ」を開きます。
- 「ショートカット」タブを選び、「ショートカットキー」欄に好きなキーの組み合わせ(例:Ctrl + Alt + D)を入力します。
- 「OK」を押して設定を完了します。
- ショートカットキーを使用して実行:
- 設定したショートカットキーを押すと、スクリプトが実行されます。
終わりに
以上、Pythonで動画をダウンロードするデスクトップアプリケーションの作成と、Macでのショートカットキーや右クリックメニューから実行する方法について解説しました。このアプリケーションを使うことで、簡単に動画をダウンロードでき、Mac環境でも手軽にアクセスできるようになります。興味があればぜひ試してみてください。
コメント