drremote 0.1.0.6
DRRemote is a python modul which offers access to Davinci Resolve Studio.
License: MIT
Keywords: python davinci resolve api

# DRRemote

DRRemote is a python modul which offers access to Davinci Resolve Studio.
At the time the functionality is very basic. DRRemote is used in conjunction
with [LRDavinci](https://github.com/sto3014/LRDavinci).
LRDavinci is a Lightroom plug-in for Davinci Resolve Studio

## Features

* Changes the current timeline
* Retrieves the attributes for the current timeline
    * name, type and ipaddress of database
    * name of project
    * name of timeline

## Requirements

* Python >= 3.6
* Davinci Resolve Studio (license is needed for Davinci Resolve's Python API).

## Installation

1. [Python](https://www.python.org/downloads/)  
   You need to install version >= 3.6
2. Install/update PIP
    * Windows
        * python -m pip install --upgrade pip
    * macOS
        * curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
        * python get-pip.py
3. DRRemote
    * pip install drremote
4. Set the Davinci Resolve scripting environment.
   See readme file:  
   macOS  
   ```/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/README.txt```  
   Windows  
   ```%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting\README.txt```

## Usage

__DRRemote__ must be executed in a command prompt (Windows) or terminal (macOS) window. You can do so by calling
the drremote executable/script. To execute drremote you must use the full path or extend your PATH variable.

* Windows:

```
%APPDATA%\Programs\Python\Python36\Scripts\drremote.exe
```

* macOS

```
/Library/Frameworks/Python.framework/Versions/3.6/bin/drremote
```


A simple example:

* Start Davinci Resolve Studio, open a project and select a timeline
* Open a Command Prompt/Terminal and type:

```
drremote -m gettimeline -o out.txt
```

If successful you find the gathered information in file out.txt in your current directory:

```
Success
project=Snippets
timeline=2021-12-10-First Snow
database=2021:Disk
```

If you get an error, you may find some more information in the log logfile:

* MacOS
    * $TMPDIR/drremote.log
* Windows
    * %TEMP%/drremote.log

For the commandline arguments see ```drremote --help```:

```
usage: drremote [-h] -m {settimeline,gettimeline} [-p PROJECT [PROJECT ...]]
                [-t TIMELINE [TIMELINE ...]] [-d DATABASE [DATABASE ...]] -o
                OUTPUT_PATH [OUTPUT_PATH ...] [-w WAIT]

optional arguments:
  -h, --help            show this help message and exit
  -m {settimeline,gettimeline}, --mode {settimeline,gettimeline}
                        The operating mode.
  -p PROJECT [PROJECT ...], --project PROJECT [PROJECT ...]
                        The name of a project
  -t TIMELINE [TIMELINE ...], --timeline TIMELINE [TIMELINE ...]
                        The name of a timeline
  -d DATABASE [DATABASE ...], --database DATABASE [DATABASE ...]
                        The database. The format is: DbName:DbType for disk
                        driven databases and DbName:DbType:IpAddress for
                        PostgreSQL databases
  -o OUTPUT_PATH [OUTPUT_PATH ...], --output-path OUTPUT_PATH [OUTPUT_PATH ...]
                        The name and path of the output file. This file holds
                        the result like timeline attributes or error messages.
  -w WAIT, --wait WAIT  Amounts of seconds to wait between the first and
                        second connection attempt
```

###Examples

#### Set the current timeline in Davinci resolve

```
drremote -m settimeline -t "2021-12-10-First Snow" -p Snippets -d 2021:disk -o out.txt
```  

#### Get the current timeline IDs

```
drremote -m gettimeline -o out.txt
```

The result is written into __out.txt__:

```
Success
project=Snippets
timeline=2021-12-10-First Snow
database=2021:Disk
```