Resolve Render Monitor is a headless background daemon and web dashboard designed for DaVinci Resolve Studio. It provides real-time render tracking, automated email routing via Gmail API, and intelligent stall/freeze detection.
- Real-Time Tracking: Monitor active render jobs, percentages, projects, and queues.
- Stall & Freeze Detection: Automatically detects when a render has stalled at a specific percentage for over 5 minutes (indicating a potential GPU freeze or system lockup) and sends a warning alert.
- Automated Routing: Dispatches custom success, failure, and stall notifications to separate email address groups.
- Stealth Background Service: Command-line controls allow installing the script as an invisible daemon that autostarts with Windows.
- Modern Web Dashboard: A web interface featuring a live queue, database-backed render history, search/filter controls, and configuration inputs.
- DaVinci Resolve Studio: The free version of DaVinci Resolve does not support external scripting APIs.
- External Scripting Enabled:
- In DaVinci Resolve, navigate to Preferences > System > General.
- Change External scripting using to Network (or Local).
- Save preferences and restart DaVinci Resolve.
- Python 3.x: Ensure Python is installed and added to your system
PATH.
Note: While the daemon includes native support for macOS and Linux, it has currently only been officially tested on Windows.
- Windows: Download from python.org. CRITICAL: Check "Add python.exe to PATH" during installation.
- macOS: Install via Homebrew:
brew install python - Linux: Install via package manager, e.g.,
sudo apt install python3 python3-pip
-
Clone this repository:
git clone https://github.com/Fobdor/ResolveRenderMonitor.git cd ResolveRenderMonitor -
Install the required Python dependencies:
pip install fastapi uvicorn google-api-python-client google-auth-httplib2 google-auth-oauthlib
-
Copy the example configuration to configure defaults:
copy config.json.example config.json
Security Recommendation: We highly recommend creating a brand new, dedicated Gmail account specifically for this application rather than using your personal or primary work email. Although the access tokens generated are stored securely on your local machine and are strictly limited to sending emails (no reading/deleting), a dedicated account ensures that in the unlikely event your local machine's tokens are ever compromised, your private communications remain completely isolated and secure.
To enable email notifications, you must configure a Google Cloud project to allow the application to send emails on your behalf:
- Create a Google Cloud Project:
- Go to Google Cloud Console.
- Click the project dropdown at the top left, select New Project, name it
Resolve Monitor, and click Create.
- Enable Gmail API:
- In the top search bar, type
Gmail APIand click on it. - Click the Enable button.
- In the top search bar, type
- Configure OAuth Consent Screen:
- Use the hamburger menu (top left of Google Cloud logo) and navigate to APIs & Services > OAuth consent screen.
- Click Get started.
- In the App Information section, fill in the App name and your User support email address.
- In the Audience section, select External.
- In the Contact info section, fill in your email address.
- Agree to the user data policy and click Create. (This automatically fills out the Branding section).
- Proceed to the Data Access step. Click Add or Remove Scopes. The only scope necessary to be turned on is the Gmail API
.../auth/gmail.send("send email on your behalf"). Check it and click Update / Save. - In the Audience section under Test users, click Add Users and enter the exact Gmail address you will use to send emails.
- Publish the App (Crucial):
- Also in the Audience section, find the Publishing status area.
- Click the Publish App button and confirm. This transitions the app out of "Testing" status so your Gmail tokens do not expire every 7 days.
- Generate Credentials:
- Use the hamburger menu (top left of Google Cloud logo) and navigate to APIs & Services > Credentials.
- Click + CREATE CREDENTIALS at the top and select OAuth client ID.
- Set the Application Type to Desktop app and click Create.
- Download the generated JSON credentials file.
- Deploy Credentials:
- Save the downloaded JSON file in the project folder as
credentials.json.
- Save the downloaded JSON file in the project folder as
On your first run, you must start the script normally in your terminal to complete the Google authentication flow:
python rma.pyA browser window will automatically open asking you to authorize the app. Click Advanced > Go to Resolve Monitor (unsafe) and continue. Once authorized, a token.json file is created, and you can close the terminal.
Once initialized, you can control the script using the following command-line flags:
-
Start Background Daemon:
python rma.py --start
Launches the monitor invisibly in the background. Activity is logged to
rma_service.log(capped at 3MB). -
Install Boot Autostart:
python rma.py --install
Creates a stealth startup shortcut (
ResolveMonitor.vbs) in your Windows Startup directory, running the application invisibly every time you boot. -
Stop Background Daemon:
python rma.py --stop
Terminates all running instances of the background daemon.
-
Uninstall Autostart:
python rma.py --uninstall
Removes the startup script so the application no longer boots with Windows.
Once running, the web interface is accessible at:
http://127.0.0.1:8282 (Port can be customized in config.json).
- Global Defaults: Set default success and failure email lists on the dashboard.
- Job-Specific Routing: Click the ⚙️ Configure button on any live job in the queue to enable custom email lists, or toggle alerts on/off for specific renders. Note: Emails will ONLY be sent if notifications are explicitly turned on for that specific render.
To personalize the dashboard and email notifications with your own branding, simply replace the existing logo.png file in the application directory with your own PNG image. Ensure the new file is named exactly logo.png.
