The Daemon

If you’re not using the provided Python or ExtendScript API, you can control DuME through a simple TCP Socket to send requests to the DuME Daemon.

By default, the Daemon listens on port 180551 but this can be changed in the DuME settings, or starting DuME with $ DuME --port 12345.

To query the Daemon, write simple JSON objects to the socket.

These objects must contain at least a string value called query, and may have an object value called data with the needed details about the query.

The Daemon replies with a JSON object containing a boolean value called error and an object or array value called data with the result of the query. The reply also contains the name and version of the Daemon.

Errors

In case of error, the Daemon sets the error value to true.

The data object contains details about the error:

  • errorType, string: The error, one of:
    • "EmptyRequest": The request was empty.
    • "MalformedRequest": The request couldn’t be parsed.
    • "EmptyQuery": The query value was missing in the request.
    • "UnknownQuery": The query value is unknown.
  • errorDescription, string: A human-readable description of the error. This description may be localized.

Example

{
    "error": true,
    "data": {
        "errorType": "EmptyQuery",
        "errorDescription": "The query is not set."
    },
    "dume": "DuME",
    "version": "1.0.0"
}

Requests

createGraph

Creates a new DuME Graph / Render Job.

Input metadata can be given inline or using sidecar metadata JSON files.

  • parameters

    • input, string[]: The list of input file paths.
    • meta, object[]: A list of input metadata objects. Refer to the input metadata section for more information.
    • metaFiles, string[]: A list of input metadata JSON files. Refer to the input metadata section for more information.
    • output, optional, string: An output file path.
    • preset, optional, string: The name of an output preset.
  • Query

{
    "query": "createGraph",
    "data": {
        "input": ["...", "..."],
        "meta": [ {}, {} ],
        "metaFiles": [ "...", "..." ],
        "output": "...",
        "preset": "..."
    }
}
  • Reply
{
    "error": false,
    "data": {},
    "dume": "DuME",
    "version": "1.0.0"
}

getColorProfiles

Lists the available internal color profiles. This does not include the OCIO profiles that your app should get from the OCIO config file.

  • Query
{
    "query": "getColorProfiles"
}
  • Reply
{
    "error": false,
    "data": [
        {
            "description": "...",
            "name": "..."
        },
        {
            "description": "...",
            "name": "..."
        }
    ],
    "dume": "DuME",
    "version": "1.0.0"
}

getPresets

Lists the available presets.

  • Parameters

    • nodeType, optional, string: The type of node. One of "inputFile", "outputFile", "filter".
    • filterType, optional, string: The type of filter.
  • Query

{
    "query": "getPresets",
    "data": {
        "nodeType": "...",
        "filterType": "..."
    }
}
  • Reply
{
    "error": false,
    "data": [
        {
            "filterType": "...",
            "name": "...",
            "nodeType": "..."
        },
        {
            "filterType": "...",
            "name": "...",
            "nodeType": "..."
        }
    ],
    "dume": "DuME",
    "version": "1.0.0"
}

ping

Returns some information about DuME and the Daemon. Use this query to make sure the Daemon is running and you can contact it.

  • Query
{
    "query": "ping"
}
  • Reply
{
    "error": false,
    "data": {
        "appDescription": "DuME - Duduf Media Encoder",
        "appName": "DuME",
        "version": "1.0.0"
    },
    "dume": "DuME",
    "version": "1.0.0"
}

render

Launches the render queue.

  • Parameters

    • autoQuit, optional, boolean: Set this to true to automatically quit DuME after the rendering process has finished.
  • Query

{
    "query": "render",
    "data" {
        "autoQuit": false
    }
}
  • Reply
{
    "error": false,
    "data": {},
    "dume": "DuME",
    "version": "1.0.0"
}

  1. This was chosen after the birth date of Karl Marx, May 5, 1818.