![見出し画像](https://assets.st-note.com/production/uploads/images/137744854/rectangle_large_type_2_9a23e645d87f1d976b3e8f0811ec1584.png?width=1200)
DaVinci Resolve レンダリング終了時にメール通知
DaVinci Resolve と Pythonを用いて、レンダリング終了時に通知を送ることができます。
とりあえずWindowsで動作確認はしています。Macは持っていないので…
今回はレンダリング・監視・メール送信をするスクリプトを作りましたが、DaVinciでは他に様々な処理をPythonのコードベースで行えます。
操作できる項目は、マニュアルにも載っています。ぜひそちらもご参照ください。
前提条件
有償版のDaVinci Resolveを使用している
準備 (所要時間)
DaVinci Resolve の環境設定 (2分)
Pythonをインストール (5分)
OSの環境変数を設定 (8分)
(必要に応じて)送信用のGmailアカウントを作成
アプリパスワード取得 (3分)
Pythonソース設定など (10分)
DaVinci Resolve の環境設定
左上、DaVinci Resolve -> 環境設定 をクリック
![](https://assets.st-note.com/img/1713451935037-GS86TyGR2X.png)
一般 -> 外部スクリプトに使用 を "ローカル" に変更
![](https://assets.st-note.com/img/1713452036041-vwogOptQWX.png?width=1200)
DaVinciを閉じ、ソフト再起動で反映される
Pythonをインストール
Python 3.6以上をインストール
(動作確認は3.11でしています)
Python公式サイト
Python 3.12 をダウンロード(画面中央)
![](https://assets.st-note.com/img/1713452465745-YVUMceGGDi.png?width=1200)
赤線部に注意してインストール
![](https://assets.st-note.com/img/1713452620846-HSVslP69iy.png?width=1200)
![](https://assets.st-note.com/img/1713452645597-XJKP4VFOFe.png?width=1200)
![](https://assets.st-note.com/img/1713452671459-J6I54sZIzn.png?width=1200)
インストールしたらWindowsを再起動
OSの環境変数を設定
コマンドプロンプトで"where python"と入力し、Enter
where python
インストールしたPythonの場所をコピー
(この場合は、"C:\Program Files\Python311\python.exe")
![](https://assets.st-note.com/img/1713452863366-gHTsrT01et.png)
コントロールパネルから、「環境変数を編集」を開く
![](https://assets.st-note.com/img/1713452223308-IYK3NS8EaK.png)
PYTHONPATHを新規登録
![](https://assets.st-note.com/img/1713453031299-x06kmMW6Y9.png?width=1200)
同様に、RESOLVE_SCRIPT_API / RESOLVE_SCRIPT_LIBも新規登録
RESOLVE_SCRIPT_API
C:/ProgramData/Blackmagic Design/DaVinci Resolve/Support/Developer/Scripting
RESOLVE_SCRIPT_LIB
C:\Program Files\Blackmagic Design\DaVinci Resolve\fusionscript.dll
終わったらOKを押してウィンドウを閉じる
→Windows再起動
(必要に応じて)送信用のGmailアカウントを作成
Gmailを持っていない場合、Pythonのコードにアカウントのパスワードを記述するのに抵抗がある場合は、これ用のアカウントを取得してください。
アプリパスワード取得
取得したら、アプリパスワードを取得する
Googleアカウントを開く
https://myaccount.google.com/
"アプリ パスワード"と検索
適当な名前でパスワードを取得し、コピーして控えておく
![](https://assets.st-note.com/img/1713453542581-SApt9PTa5Y.png?width=1200)
Pythonソース設定など
下記のPythonコードコピー
Visual Studio, メモ帳等で開く
import SETUP
import time
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from datetime import datetime
def SEND_MAIL(subject, body):
global sender_email, password, receiver_email
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = subject
message.attach(MIMEText(body, "plain"))
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
server.login(sender_email, password)
server.send_message(message)
# メール送信初期設定
sender_email = "送信用のメールアドレスを設定"
password = "取得したアプリパスワードを貼り付け (スペースも含める)"
receiver_email = "通知を送りたいメールアドレスを入力"
# DaVinci設定
resolve = SETUP.scriptapp("Resolve")
projectManager = resolve.GetProjectManager()
project = projectManager.GetCurrentProject()
# レンダリング開始
Time = datetime.now()
Time = Time.strftime("%Y-%m-%d %H:%M:%S")
Time = str(Time)
# ---レンダリング開始時のメールを送信しない場合は、下3行を削除---
subject = "♪レンダリング開始♪ | " + Time
body = "レンダリングを開始しました\n終了後、メールで通知が届きます"
SEND_MAIL(subject, body)
# ---レンダリング開始時のメールを送信しない場合は、上3行を削除---
print(Time + "\nStart rendering...")
project.StartRendering(isInteractiveMode = False)
# レンダリング監視
status = True
while status:
status = project.IsRenderingInProgress()
time.sleep(1)
# 完了メール送信
Time = datetime.now()
Time = Time.strftime("%Y-%m-%d %H:%M:%S")
Time = str(Time)
subject = "♪レンダリング完了♪ | " + Time
body = "レンダリングが完了しました"
SEND_MAIL(subject, body)
print(Time + "\nRendering finished")
21~23行目を自分の情報に変更
21: メール送信元のアドレスを設定
22: 21のメアドのアプリパスワードを入力
23: 通知を送信したいメアドを入力
![](https://assets.st-note.com/img/1713453813248-dgXqK9kIvH.png)
レンダリング”開始時”のメールを送信しない場合は、36~39行目を削除
![](https://assets.st-note.com/img/1713453931505-rPJBIwIEzF.png)
変更したら保存し、下記ディレクトリに保存
C:\ProgramData\Blackmagic Design\DaVinci Resolve\Fusion\Scripts\Utility
続いて、下記ディレクトリを開く
C:/ProgramData/Blackmagic Design/DaVinci Resolve/Support/Developer/Scripting/Modules
DaVinciResolveScript.py をコピーし、
C:\ProgramData\Blackmagic Design\DaVinci Resolve\Fusion\Scripts\Utility
に保存。
その際、ファイル名をSETUP.pyとリネーム
こんな感じになればOK
![](https://assets.st-note.com/img/1713454200248-tYSDgTxXzt.png)
SETUP.pyを開き、1~3行目を次のように変更
2行目だけ変わっています
import sys
import importlib
import os
これで準備完了です
つかってみる
DaVinciで通常通り編集、レンダーキューに追加する
ここまでは通常通りの編集
![](https://assets.st-note.com/img/1713454428183-g9xWZUrwfC.png)
レンダリングの際は、、、
ワークスペース -> コンソールを開くと、こんなウィンドウが表示される
![](https://assets.st-note.com/img/1713454521643-ba7imMmE33.png?width=1200)
ワークスペース -> スクリプト -> SEND_MAIL
をクリックすると、レンダリングが開始する
![](https://assets.st-note.com/img/1713454475108-4BM97y66n5.png)
レンダリング開始時刻がコンソール上に表示され、
→開始通知メールを送信
→レンダリング終了待機
→終了後、再度メール通知を送信
と処理が続く
![](https://assets.st-note.com/img/1713454772871-ILdLblXeQp.png?width=1200)
![](https://assets.st-note.com/img/1713454865065-BZdwGHdg2p.png)
下記も参考にさせていただきました
ありがとうございました
コードの説明
ここから先は
この記事が気に入ったらチップで応援してみませんか?