【Mac/Windows対応】動画ダウンロードアプリのPythonスクリプトを例にPythonスクリプトを簡単に実行する方法

Python

Pythonスクリプトを実行するにはJupyter notebookを立ち上げるなど若干の手間がかかります。今回はyt-dlptkinterを利用したシンプルなデスクトップアプリを作成し、それを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()

重要な部分の解説

  1. download_video 関数:
    • 動画のURLと保存先を取得し、yt-dlpを使ってダウンロードします。ダウンロード後にroot.quit()でアプリを終了します。
  2. GUI部分:
    • tkinterを使って、URLと保存先を入力するためのフィールド、フォルダ選択ボタン、そしてダウンロードボタンを作成しています。
  3. 保存先の選択:
    • 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.pypackagesオプションで指定しておくと、ビルド時にそれらも含まれます。

初回実行時の確認メッセージ: 初回実行時には、未署名のアプリケーションであるため、セキュリティ警告が表示されることがあります。これを回避するには、「システム環境設定」→「セキュリティとプライバシー」→「一般」タブからアプリを許可する必要があります。

Windowsでの右クリックメニューやショートカットキーからの実行方法

Windowsでは、Pythonスクリプトを右クリックメニューに追加するか、ショートカットキーからすぐに実行できるように設定する方法があります。以下、手順を解説します。

1. 右クリックメニューに追加する方法(レジストリを編集)

Windowsの右クリックメニュー(コンテキストメニュー)に、スクリプトを追加するにはレジストリを編集します。レジストリ編集は慎重に行ってください

手順:

  1. レジストリエディタを開く:
    • Windowsキー + Rを押して「ファイル名を指定して実行」を開き、regeditと入力してEnterキーを押します。
  2. レジストリキーの作成:
    • 以下のパスに移動します
    • HKEY_CLASSES_ROOT\Directory\Background\shell
    • shellキーを右クリックして「新規」→「キー」を選び、キー名に実行したいスクリプトの名前(例:Download Video)を付けます。
  3. 実行コマンドの追加:
    • 新しく作成したキーを右クリックして「新規」→「キー」を選び、名前を「command」にします。
    • commandキーを選択し、右側の「(既定)」をダブルクリックして編集画面を開きます。
    • 以下のコマンドを値として入力します(Pythonのインストールパスとスクリプトパスは適宜変更してください)
    • "C:\path\to\python.exe" "C:\path\to\your_script.py"
    • これで、任意の場所で右クリックして「Download Video」を選ぶと、スクリプトが実行されるようになります。

2. ショートカットキーでの実行

Pythonスクリプトをショートカットキーで実行するには、スクリプトのショートカットを作成し、そのショートカットにキーを割り当てます。

手順:

  1. ショートカットを作成:
    • your_script.pyのある場所で右クリックし、「ショートカットの作成」を選択します。
  2. ショートカットキーの割り当て:
    • 作成したショートカットを右クリックし、「プロパティ」を開きます。
    • 「ショートカット」タブを選び、「ショートカットキー」欄に好きなキーの組み合わせ(例:Ctrl + Alt + D)を入力します。
    • 「OK」を押して設定を完了します。
  3. ショートカットキーを使用して実行:
    • 設定したショートカットキーを押すと、スクリプトが実行されます。

終わりに

以上、Pythonで動画をダウンロードするデスクトップアプリケーションの作成と、Macでのショートカットキーや右クリックメニューから実行する方法について解説しました。このアプリケーションを使うことで、簡単に動画をダウンロードでき、Mac環境でも手軽にアクセスできるようになります。興味があればぜひ試してみてください。

コメント

タイトルとURLをコピーしました