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
.tdarrfolder 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
| Setting | Description | API Trigger Override |
|---|---|---|
| Name | A label for your automation. | No |
| Flow | The flow to run when the automation triggers. | No |
| Libraries | Which libraries this automation applies to. A job is created per library/node combination. | libraryIds |
| Target Nodes | Which nodes should run the automation. Select allNodes or pick specific nodes. | targetNodeNames, targetNodeIds |
| Cron Schedule | A 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 Startup | When enabled, the automation will run once when the server starts. | No |
| Payload | A JSON object passed to the flow as additional data. Useful for parameterising flows. | payload |
| Execute Immediately | When enabled, the automation bypasses the normal queue and runs immediately on the target node. | executeImmediately |
| Bypass Worker Limits | When enabled (requires Run Immediately), the automation ignores the node's worker limit and starts regardless. | bypassWorkerLimits |
| Bypass Staged File Limit | When 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
payloadfield.
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:
- Create a new flow:
Input File→Prevent Sleep While Encoding - Create an automation that uses this flow. Copy the automation's ID from the settings panel.
- In your normal transcoding flow, add a
Run Automationplugin right afterInput File. Paste the automation ID into theAutomation Config IDfield.
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.
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:
- Create a new flow:
Input File→Set GPU Node to Low Priority When Non-Tdarr NVENC Detected - Create an automation that uses this flow. Copy the automation's ID from the settings panel.
- In your normal transcoding flow, add a
Run Automationplugin right afterInput File. Paste the automation ID into theAutomation Config IDfield.
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.
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:
- Create an automation for the background task you want (e.g. the sleep-prevention example above). Copy its ID.
- In your main transcoding flow, add
Run AutomationafterInput File. - Paste the automation ID into
Automation Config ID. - Set
Skip if RunningtoOn 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.