← All DaVinci Resolve API guides
DaVinci Resolve APIBeginnerProjects

How to Get the Current DaVinci Resolve Project in Python

Project Manager, the active Project object, and a safe current-Timeline check

Get the project currently open in Resolve and verify the active Timeline before importing media, reading settings, exporting audio, or starting render automation.

API

Resolve Scripting API

Language

Python

Resolve

19–20+

Requires

Running Resolve

Syntax

project = resolve.GetProjectManager().GetCurrentProject()

Parameters

  • GetCurrentProject() does not require arguments.

Returns

The active Project object, or None when no project is open.

Complete working Python exampleuse it as a starting point for your own script
import os
import sys
from pathlib import Path


def import_resolve_module():
    try:
        import DaVinciResolveScript as dvr
        return dvr
    except ImportError:
        search_paths = [
            os.environ.get("RESOLVE_SCRIPT_API", ""),
            os.environ.get("RESOLVE_MODULES", ""),
            r"C:\\ProgramData\\Blackmagic Design\\DaVinci Resolve\\Support\\Developer\\Scripting\\Modules",
            "/opt/resolve/Developer/Scripting/Modules",
            "/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/Modules",
            str(Path.home() / "Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/Modules"),
        ]
        for path in search_paths:
            if path and os.path.isdir(path) and path not in sys.path:
                sys.path.append(path)
        import DaVinciResolveScript as dvr
        return dvr


dvr = import_resolve_module()

resolve = dvr.scriptapp("Resolve")
if not resolve:
    raise RuntimeError("Resolve API is unavailable")

project_manager = resolve.GetProjectManager()
project = project_manager.GetCurrentProject()

if not project:
    raise RuntimeError("No DaVinci Resolve project is open")

print("Project:", project.GetName())

timeline = project.GetCurrentTimeline()
if timeline:
    print("Timeline:", timeline.GetName())
else:
    print("The project has no active Timeline")

Guide

What GetCurrentProject returns

GetCurrentProject() returns the project currently open in the Resolve interface. It does not search for project files on disk and it does not create a project. If a project is open you receive a Project object; otherwise the method returns None.

Why the check matters

Most useful calls happen on the Project object: GetMediaPool(), GetCurrentTimeline(), SetRenderSettings(), AddRenderJob(), and many others. A clear None check near the start of the script keeps failures understandable and prevents later calls from operating on an invalid object.

The active Timeline is separate

A project can exist without an active Timeline, especially in a new project. The example checks project.GetCurrentTimeline() separately and treats a missing Timeline as its own state rather than confusing it with a missing project.

Where this pattern belongs

This is a good opening block for scripts that intentionally work with the project already selected by the user. It reads the current application state without modifying the project.

How the example works

1

Get Project Manager

Project-level operations are exposed through the Project Manager object returned by Resolve.

2

Read the current project

GetCurrentProject() returns the project currently selected in the Resolve interface.

3

Handle an empty result

A missing project is a normal state. Check for None before any Media Pool, Timeline, or render calls.

4

Check the Timeline separately

A project may be open without an active Timeline, so project and Timeline validation should remain separate steps.

Resolve API notes

  • GetCurrentProject() does not create a project and does not load one by name.
  • Use ProjectManager.CreateProject() when you need to create a new project.
  • GetCurrentTimeline() can return None even when a project is open.
  • Before rendering, reading timeline FPS, or iterating clips, check the active Timeline explicitly.

Common errors

No project is open

Reason: Project Manager is available, but Resolve has no active project.

Fix: Open a project in Resolve or load the required project through LoadProject().

No active Timeline

Reason: The project exists, but no Timeline has been created or selected.

Fix: Create a Timeline through the Media Pool or select an existing one before Timeline-specific calls.

The script uses the wrong project

Reason: GetCurrentProject() follows the project currently active in the Resolve UI.

Fix: Validate project.GetName() before automation or load the required project explicitly.

Next step

With a valid Project object, you can access Media Pool, Timeline settings, and render operations.

Related API guides