Skip to main content

Automations

Experimental

  • Automations reuse the existing flow and job report systems. Select a flow and it will be run on the target nodes according to the cron schedule. An automation job will run for each library and each node combination. For example, 2 libraries and 3 nodes will trigger 6 automation jobs.
  • A temporary dummy file is created in your library's .tdarr folder and used as the input for the flow. This means automations are best suited for tasks that don't depend on a specific input file, such as running scripts, sending notifications, or performing maintenance.
  • The server has a 5-minute timeout for each node to acknowledge and start the automation. Once the worker is running on the node, it can take as long as needed to complete.
  • Automation jobs are tracked separately and do not count towards your library transcode statistics.

Settings

SettingDescriptionAPI Trigger Override
NameA label for your automation.No
FlowThe flow to run when the automation triggers.No
LibrariesWhich libraries this automation applies to. A job is created per library/node combination.libraryIds
Target NodesWhich nodes should run the automation. Select allNodes or pick specific nodes.targetNodeNames, targetNodeIds
Cron ScheduleA cron expression controlling how often the automation runs (e.g. */5 * * * * for every 5 minutes). Use the built-in helper or crontab.guru to build expressions. Enable/disable the schedule with the toggle.No
Run on StartupWhen enabled, the automation will run once when the server starts.No
PayloadA JSON object passed to the flow as additional data. Useful for parameterising flows.payload
Execute ImmediatelyWhen enabled, the automation bypasses the normal queue and runs immediately on the target node.executeImmediately
Bypass Worker LimitsWhen enabled (requires Run Immediately), the automation ignores the node's worker limit and starts regardless.bypassWorkerLimits
Bypass Staged File LimitWhen enabled (requires Run Immediately), the automation ignores the staged file limit.bypassStagedFileLimit

Triggering via API

You can trigger any automation via the API:

curl -X POST http://<server>:<port>/api/v2/run-automation \
-H "Content-Type: application/json" \
-H "x-api-key: <your-api-key>" \
-d '{"data": {"configId": "<automation-id>", "payload": {}}}'
  • Replace <server>:<port> with your Tdarr server address.
  • Replace <your-api-key> with your API key.
  • Replace <automation-id> with the automation's ID (visible in the settings panel).
  • You can pass custom data via the payload field.

Example use cases

Prevent Sleep While Encoding

Problem: Your PC or server goes to sleep while Tdarr is encoding, interrupting your transcode jobs.

Solution: Use the Prevent Sleep While Encoding automation plugin to keep the system awake while workers are active. It monitors your node's workers and only allows sleep once all encoding has finished.

Setup:

  1. Create a new flow: Input FilePrevent Sleep While Encoding
  2. Create an automation that uses this flow. Copy the automation's ID from the settings panel.
  3. In your normal transcoding flow, add a Run Automation plugin right after Input File. Paste the automation ID into the Automation Config ID field.

Now whenever a worker picks up a file, it will automatically start the sleep-prevention automation on that node. The automation keeps running in the background, checking every 15 seconds whether other workers are still active. Once all encoding finishes, it releases the sleep lock and exits.

tip

This works across Windows (PowerShell), macOS (caffeinate), and Linux (systemd-inhibit) - no extra configuration needed.


Lower GPU Priority When Other Apps Need NVENC

Problem: You're gaming, streaming, or running another GPU-accelerated application at the same time as Tdarr, and they compete for NVIDIA's hardware encoder (NVENC), causing stuttering or failures.

Solution: Use the Set GPU Node to Low Priority When Non-Tdarr NVENC Detected plugin. It monitors your GPU for non-Tdarr processes using NVENC and automatically lowers Tdarr's encoding priority while those processes are active. When they stop, priority is restored to normal.

Setup:

  1. Create a new flow: Input FileSet GPU Node to Low Priority When Non-Tdarr NVENC Detected
  2. Create an automation that uses this flow. Copy the automation's ID from the settings panel.
  3. In your normal transcoding flow, add a Run Automation plugin right after Input File. Paste the automation ID into the Automation Config ID field.

Now whenever Tdarr is encoding, it will monitor your GPU in the background. If you start a game or another app that uses NVENC, Tdarr's ffmpeg/HandBrake process is automatically lowered to low priority so your other application gets first access to the GPU encoder. When you close the other app, Tdarr's priority goes back to normal.

tip

This requires an NVIDIA GPU with nvidia-smi available. Works on both Windows and Linux.


Run Automation (Trigger One Automation from Another)

Problem: You have a background task (like preventing sleep or adjusting GPU priority) that should only run while your main transcode flow is actively processing files - not 24/7 on a schedule.

Solution: Use the Run Automation plugin inside your transcode flow to trigger a separate automation on demand. It can check whether the automation is already running to avoid duplicates.

Setup:

  1. Create an automation for the background task you want (e.g. the sleep-prevention example above). Copy its ID.
  2. In your main transcoding flow, add Run Automation after Input File.
  3. Paste the automation ID into Automation Config ID.
  4. Set Skip if Running to On Any Node (default) so the automation is only started once across your cluster.

Each time a worker starts processing a file, it checks whether the background automation is already running. If not, it kicks it off. This gives you on-demand automations that activate only when work is happening.