Skip to content

Repository files navigation

Resolve Render Monitor (RMS)

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.


Features

  • 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.

Prerequisites

  1. DaVinci Resolve Studio: The free version of DaVinci Resolve does not support external scripting APIs.
  2. 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.
  3. Python 3.x: Ensure Python is installed and added to your system PATH.

Installation

Note: While the daemon includes native support for macOS and Linux, it has currently only been officially tested on Windows.

1. Python Environment

  • 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

2. Clone Repository

  1. Clone this repository:

    git clone https://github.com/Fobdor/ResolveRenderMonitor.git
    cd ResolveRenderMonitor
  2. Install the required Python dependencies:

    pip install fastapi uvicorn google-api-python-client google-auth-httplib2 google-auth-oauthlib
  3. Copy the example configuration to configure defaults:

    copy config.json.example config.json

Google OAuth Setup (Gmail API)

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:

  1. 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.
  2. Enable Gmail API:
    • In the top search bar, type Gmail API and click on it.
    • Click the Enable button.
  3. 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.
  4. 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.
  5. 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.
  6. Deploy Credentials:
    • Save the downloaded JSON file in the project folder as credentials.json.

Running the Application

First-Time Run

On your first run, you must start the script normally in your terminal to complete the Google authentication flow:

python rma.py

A 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.


Daemon & CLI Controls

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.


Web Dashboard

Resolve Monitor Dashboard Interface

Once running, the web interface is accessible at: http://127.0.0.1:8282 (Port can be customized in config.json).

Configuration Overrides

  • 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.

Customizing the Logo

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.

About

Render monitor & notification system for DaVinci Resolve

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages