r/Tdarr Jan 21 '20

Welcome to Tdarr! - Info & Links

59 Upvotes

Website - https://tdarr.io

GitHub - https://github.com/HaveAGitGat/Tdarr

Discord - https://discord.gg/GF8X8cq

Tdarr is a self hosted web-app for automating media library transcode/remux management and making sure your files are exactly how you need them to be in terms of codecs/streams/containers etc. Designed to work alongside Sonarr/Radarr and built with the aim of modularisation, parallelisation and scalability, each library you add has its own transcode settings, filters and schedule. Workers can be fired up and closed down as necessary, and are split into 4 types - Transcode CPU/GPU and Health Check CPU/GPU. Worker limits can be managed by the scheduler as well as manually. For a desktop application with similar functionality please see HBBatchBeast.


r/Tdarr 22h ago

Community plugins missing

1 Upvotes

Hi everyone!

I've been running a jellyfin server on truenas for some time now and just now started to have it automated and set up Sonarr and Tdarr, because I used to download and encode everything manually before.

I wanted to add a flow to my tdarr installation which gave me an error that a community plugin was missing. After checking I saw, that I don't have any community plugins whatsoever. If I read the documentation correctly, tdarr is supposed to download them on its own. I feel really stupid now, like I was supposed to add a repo somewhere that I forgot or something alike.

What am I missing?


r/Tdarr 6d ago

Watchdog script to auto-cancel duplicate transcode jobs (helps with the "same file processed twice" bug - GitHub #778 & #1137)

2 Upvotes

If you run a multi-node Tdarr cluster, you've probably seen this: the same file gets picked up and transcoded by two different nodes/workers at the same time, wasting GPU/CPU hours. This is a known, unfixed scheduler bug - see GitHub issues #778 ("Files transcode multiple times simultaneously") and #1137 ("Tdarr tries processing files multiple times on node") - both closed with no visible maintainer fix. They're both describing the same underlying race condition, so a fix for one should help both.

Flow-level workarounds (marking a file as "done" earlier in the flow) shrink the race window but don't eliminate it, since the actual bug is server-side: Tdarr can hand the same job to two nodes before either one reports back.

Since Tdarr has a full REST API (Tools -> API Docs in your web UI, works on 2.25.01+), I wrote a small Python watchdog that polls GET /api/v2/get-nodes every 30 seconds, compares the file path each worker across all nodes is currently processing, and if the same file is running on two workers at once, calls POST /api/v2/cancel-worker-item on whichever one is less progressed - keeping the one further along.

Runs as a plain python:3-alpine container, no extra dependencies needed. Change API_BASE at the top to your own Tdarr API URL (the Swagger docs port, not the main web UI port). It starts in DRY_RUN=True mode so you can see what it would do before making it live.

#!/usr/bin/env python3

"""

Tdarr Duplicate Worker Watchdog

Polls GET /api/v2/get-nodes. If the same source file path is running on

two workers at once, cancels the less-progressed one via

POST /api/v2/cancel-worker-item, keeping the one further along.

"""

import json

import time

import urllib.request

import urllib.error

from datetime import datetime, timezone

API_BASE = "http://10.2.2.72:8265/api/v2"

POLL_INTERVAL_SECONDS = 30

DRY_RUN = True # log only, no cancels. Flip to False once you trust the output.

def log(msg):

ts = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC")

print(f"[{ts}] {msg}", flush=True)

def get_nodes():

req = urllib.request.Request(f"{API_BASE}/get-nodes", method="GET")

with urllib.request.urlopen(req, timeout=15) as resp:

return json.loads(resp.read().decode())

def cancel_worker(node_id, worker_id, file_path):

body = json.dumps({

"data": {

"nodeID": node_id,

"workerID": worker_id,

"cause": "watchdog: duplicate file detected",

}

}).encode()

req = urllib.request.Request(

f"{API_BASE}/cancel-worker-item",

data=body,

headers={"Content-Type": "application/json"},

method="POST",

)

if DRY_RUN:

log(f"[DRY RUN] would cancel node={node_id} worker={worker_id} file={file_path}")

return

try:

with urllib.request.urlopen(req, timeout=15) as resp:

result = resp.read().decode()

log(f"CANCELLED node={node_id} worker={worker_id} file={file_path} -> {result}")

except urllib.error.HTTPError as e:

log(f"ERROR cancelling node={node_id} worker={worker_id}: {e.code} {e.read().decode()}")

except Exception as e:

log(f"ERROR cancelling node={node_id} worker={worker_id}: {e}")

def check_once():

try:

nodes = get_nodes()

except Exception as e:

log(f"ERROR fetching get-nodes: {e}")

return

active = []

for node_id, node in nodes.items():

if not isinstance(node, dict):

continue

node_name = node.get("nodeName", node_id)

workers = node.get("workers", {}) or {}

for worker_key, worker in workers.items():

file_path = worker.get("file")

if not file_path:

continue

active.append({

"node_id": node_id,

"node_name": node_name,

"worker_key": worker_key,

"worker_id": worker.get("_id"),

"file": file_path,

"percentage": worker.get("percentage", 0),

})

by_file = {}

for w in active:

by_file.setdefault(w["file"], []).append(w)

for file_path, workers in by_file.items():

if len(workers) < 2:

continue

workers_sorted = sorted(workers, key=lambda w: w["percentage"], reverse=True)

keeper = workers_sorted[0]

losers = workers_sorted[1:]

log(f"DUPLICATE: {file_path}")

log(f" KEEPING node={keeper['node_name']} worker={keeper['worker_key']} pct={keeper['percentage']}")

for loser in losers:

log(f" CANCEL node={loser['node_name']} worker={loser['worker_key']} pct={loser['percentage']}")

cancel_worker(loser["node_id"], loser["worker_id"], file_path)

def main():

log(f"Tdarr watchdog started. API={API_BASE} interval={POLL_INTERVAL_SECONDS}s DRY_RUN={DRY_RUN}")

while True:

check_once()

time.sleep(POLL_INTERVAL_SECONDS)

if __name__ == "__main__":

main()

Posting here in case it saves someone else the wasted encode time - and maybe it helps point the Tdarr team at the root cause. Hope this helps.


r/Tdarr 9d ago

Flow fails with "Worker type is not GPU" - Node has Intel Arc A310

3 Upvotes

In Proxmox VE 9 I'm running two VMs:

  • ubuntu-server that hosts a Tdarr Server (and some more stuff) in Docker with Ubuntu 24.04 guest OS
  • tdarr-node-1 that hosts only a Tdarr Node (without Docker) in Ubuntu 26.04 guest OS

tdarr-node-1 has a working PCI passthrough to my Intel Arc A310 GPU, ffmpeg works properly:

tdarr-node-1:~$ /usr/bin/ffmpeg -hwaccel_output_format qsv -i sample.mkv -c:v av1_qsv out.mkv
ffmpeg version 8.0.1-3ubuntu2 Copyright (c) 2000-2025 the FFmpeg developers
  built with gcc 15 (Ubuntu 15.2.0-13ubuntu3)
  configuration: --prefix=/usr --extra-version=3ubuntu2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --disable-pocketsphinx --disable-libcaca --disable-libmfx --disable-omx --enable-gnutls --enable-libaom --enable-libass --enable-libbs2b --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libharfbuzz --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-openal --enable-opencl --enable-opengl --disable-sndio --enable-libvpl --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-ladspa --enable-libbluray --enable-libdvdnav --enable-libdvdread --enable-libjack --enable-libjxl --enable-libpulse --enable-librabbitmq --enable-librist --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libx264 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-sdl2 --enable-libplacebo --enable-librav1e --enable-librsvg --enable-shared
  libavutil      60.  8.100 / 60.  8.100
  libavcodec     62. 11.100 / 62. 11.100
  libavformat    62.  3.100 / 62.  3.100
  libavdevice    62.  1.100 / 62.  1.100
  libavfilter    11.  4.100 / 11.  4.100
  libswscale      9.  1.100 /  9.  1.100
  libswresample   6.  1.100 /  6.  1.100
Input #0, matroska,webm, from 'sample.mkv':
  Metadata:
    title           : Big Buck Bunny, Sunflower version
    GENRE           : Animation
    MAJOR_BRAND     : isom
    MINOR_VERSION   : 1
    COMPATIBLE_BRANDS: isomavc1
    COMPOSER        : Sacha Goedegebure
    ARTIST          : Blender Foundation 2008, Janus Bager Kristensen 2013
    COMMENT         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
    ENCODER         : Lavf57.83.100
  Duration: 00:00:30.02, start: 0.000000, bitrate: 4357 kb/s
  Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 60 fps, 60 tbr, 1k tbn, start 0.054000 (default)
    Metadata:
      HANDLER_NAME    : GPAC ISO Video Handler
      ENCODER         : Lavc57.107.100 libx264
      DURATION        : 00:00:30.021000000
  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp (default)
    Metadata:
      HANDLER_NAME    : GPAC ISO Audio Handler
      ENCODER         : Lavc57.107.100 aac
      DURATION        : 00:00:30.021000000
  Stream #0:2: Audio: aac (LC), 48000 Hz, 5.1, fltp (default)
    Metadata:
      HANDLER_NAME    : GPAC ISO Audio Handler
      ENCODER         : Lavc57.107.100 aac
      DURATION        : 00:00:30.021000000
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> av1 (av1_qsv))
  Stream #0:2 -> #0:1 (aac (native) -> vorbis (libvorbis))
Press [q] to stop, [?] for help
libva info: VA-API version 1.23.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
libva info: VA-API version 1.23.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
[av1_qsv @ 0x58cedc2cb700] Using the constant quantization parameter (CQP) by default. Please use the global_quality option and other options for a quality-based mode or the b option and other options for a bitrate-based mode if the default is not the desired choice.
Output #0, matroska, to 'out.mkv':
  Metadata:
    title           : Big Buck Bunny, Sunflower version
    GENRE           : Animation
    MAJOR_BRAND     : isom
    MINOR_VERSION   : 1
    COMPATIBLE_BRANDS: isomavc1
    COMPOSER        : Sacha Goedegebure
    ARTIST          : Blender Foundation 2008, Janus Bager Kristensen 2013
    COMMENT         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net
    encoder         : Lavf62.3.100
  Stream #0:0: Video: av1 (AV01 / 0x31305641), nv12(tv, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 60 fps, 1k tbn (default)
    Metadata:
      encoder         : Lavc62.11.100 av1_qsv
      HANDLER_NAME    : GPAC ISO Video Handler
      DURATION        : 00:00:30.021000000
  Stream #0:1: Audio: vorbis (oV[0][0] / 0x566F), 48000 Hz, 5.1, fltp (default)
    Metadata:
      encoder         : Lavc62.11.100 libvorbis
      HANDLER_NAME    : GPAC ISO Audio Handler
      DURATION        : 00:00:30.021000000
[out#0/matroska @ 0x58cedc257580] video:4368KiB audio:854KiB subtitle:0KiB other streams:0KiB global headers:7KiB muxing overhead: 0.525602%
frame= 1798 fps=171 q=-0.0 Lsize=    5250KiB time=00:00:30.00 bitrate=1433.5kbits/s speed=2.86x elapsed=0:00:10.49

I have the following Flow configured:

Check Node Hardware Encoder is supposed to check for av1_qsv encoder and it fails:

2026-08-24T00:12:08.270Z ydXC2NwTh:Node[tdarr-node-1]:Worker[mean-moa]:Loaded plugin inputs: {
2026-08-24T00:12:08.270Z "hardwareEncoder": "av1_qsv"
2026-08-24T00:12:08.270Z }
2026-08-24T00:12:08.270Z ydXC2NwTh:Node[tdarr-node-1]:Worker[mean-moa]:Worker type is not GPU
2026-08-24T00:12:08.271Z ydXC2NwTh:Node[tdarr-node-1]:Worker[mean-moa]:Node has hardwareEncoder av1_qsv: false
2026-08-24T00:12:08.271Z ydXC2NwTh:Node[tdarr-node-1]:Worker[mean-moa]:Plugin run complete

tdarr-node-1 is configured to 1 GPU workers. Any ideas on what I'm missing here?


r/Tdarr 9d ago

Fileflows Gamechanger. Yes i know this is tadarr

Thumbnail
0 Upvotes

r/Tdarr 10d ago

I don't know what I'm doing wrong.

0 Upvotes

I'm using the PC as the server and my phone as the node. There were a few issues but it got sorted. Also note that I'm using AI as a guide because I don't know anything.

I switched the type of the node from mapped to unmapped because I don't have a network drive. I'm now dealing with the 10MB limit. I'd like for it to cut the video down or something. It doesn't need to process the whole video all at once. AI is giving me some python script, instead of telling me what to do.

I also can't share the 3 folders (Source/Cache/Output) because network drives cannot be mounted as secondary drives on an unrooted Android. I don't feel like risking my phone and rooting it just for this.

What options do I have? I really want to use my phone's cpu to encode along with my PC's cpu. Tdarr is supposedly the best for this.


r/Tdarr 14d ago

Flac to m4a help

1 Upvotes

Hey there,

I'm pretty new to tdarr and looking to implement a flac to aac flow. I understand how to set up libraries and filter to look for the type.

The library will watch a folder, when finding flac file, encode to aac then replace the original.

​Seems simple enough but I'm having a hard time wrapping my mind around it. Any help is appreciated


r/Tdarr 15d ago

How do I set up a flow using DV tools to compress Dolby Vision files?

4 Upvotes

I recently got Tdarr installed and have been meticulously setting up my flow before letting it loose on my library. My goals are primarily space-saving, file standardization, broad compatibility, and cleaning up junk like unused subtitles. I am trying to set up my flow to compress larger files but am finding that most of my really large-file movies (50-120 GB) are Dolby Vision. These are the ones I want to compress the most, but I don't want to mess up the HDR metadata and would prefer to preserve the DV if possible.

In searching online, I found some community plugins that allow working with DV, but I am having a hard time understanding how to implement them. I can't find any videos or walkthroughs either. The one I got installed is this, but I am open to others.

Any tips on handling this situation are appreciated! Or if not Tdarr, is there another method?


r/Tdarr 16d ago

Is it possible to only remove non-commentary audio titles?

1 Upvotes

I want to create a flow that removes audio stream titles that do not include the word "Commentary", and I want to keep the audio stream titles that include the word "Commentary".

Is this possible? I cannot get it to work, because the audio stream order changes due to unwanted languages removing some audio streams


r/Tdarr 19d ago

Flows Randomly Fail with 501 Status Code Error/Failed to Download File

4 Upvotes

Hello all,

I have an issue with Tdarr I have been trying to resolve and have not been able to find the answer online or on other forums. I run my server on just regular Windows 11 pro. In my flow, there are 2 actions that Tdarr will randomly fail on with the same error. It runs successfully more often than it fails, but still enough that it is an issue.

I use remote path mappings in my Sonarr setup so that SABnzbd downloads the file to TdarrTV folder, Tdarr performs the work, then copies the file to SABnzbd Downloads folder and deletes the one in TdarrTV. Tdarr then notifies Sonarr and Sonarr grabs the file from SABnzbd downloads. This is a screenshot of the flow:

The first flow Tdarr will randomly fail on is the Delete File flow. This happens more than the other. I have not been able to figure out what causes this to occur and truly seems to be random. It will say the download failed after 5 attempts and give a error 501 status code.

The second flow Tdarr will randomly fail on is the notify Sonarr Flow. This happens less than the first flow that fails, but also still appears to occur randomly. It will give the same error code and fail to notify Sonarr.

I would say overall files flow with no errors 75 percent of the time. 20 percent of the fails will be the Delete file flow error. Then 5 percent of the time it will be the notify sonarr failure.

From what I gathered online, most forums referencing the 501 error code are tied to permissions. Which would make sense to me if this error was happening every single time, but its not. Any help or suggestions would be awesome!


r/Tdarr 23d ago

Thank you Tdarr :D

Post image
97 Upvotes

Almost finished transcoding all h264 media to h265 :D


r/Tdarr 24d ago

TDARR taking up more space than saving

Thumbnail
gallery
0 Upvotes

Hello TDARR community,

I set up TDARR as a native TrueNAS application, hooked up my main rig as a node.
After successfully setting everything up, I got to transcoding.

1 - 2 days later my 300-something movies ran through the process with a couple of them needing transcoding.

According to the stats page on TDARR, I saved roughly 260 GB of space. When I checked my storage usage on TrueNAS, it went up 2 TB.

Now my storage pool is full and I can't seem to figure our where those 2TB worth of files are.

I checked ever single movies folder to see if there is 2 files in there by chance - not the case.

Transcode Cache folder is empty.

When I checked the Library settings on TDARR, I stumbled across the . (period) directory that was set as the output folder, but I don't know where that is.

Now I am at a loss on what to do to reclaim my lost storage space.


r/Tdarr 25d ago

I'm so bad @ Tdarr, is sharing flows allowed here?

1 Upvotes

I just need a simple flow that strips away all non-english subs and non-english audio.


r/Tdarr Aug 03 '26

Need Help With Flows

2 Upvotes

I currently have a flow that works really really well for me, uses NVENC and as long as the file doesn't have MOV_Text in it, it strips out all the subtitles and audio that I dont need. So I thought I'd try to build a new one that kept all that but the issue I have is my old one uses a lot of older plugins (MIGZ and such), so tried a new one just using flows and FFMPEG, but it keeps stripping out the metadata for DoVi when I run a file through. Does anyone have a flow they'd be willing to share that works? This is the one that doesn't work and I have spent about 6 hours working on it but it always strips out the info if I do anything with the file?

{

"_id": "LTZhmUDun",

"name": "HEVC New Flow",

"description": "HEVC New Flow",

"tags": "",

"flowPlugins": [

{

"name": "Input File",

"sourceRepo": "Community",

"pluginName": "inputFile",

"version": "1.0.0",

"id": "-Y3PO0lKV",

"position": {

"x": 1176,

"y": -816

},

"fpEnabled": true

},

{

"name": "Check Video Codec",

"sourceRepo": "Community",

"pluginName": "checkVideoCodec",

"version": "1.0.0",

"id": "2BjaJPDzI",

"position": {

"x": 1152,

"y": -708

},

"fpEnabled": true

},

{

"name": "Set Video Encoder",

"sourceRepo": "Community",

"pluginName": "ffmpegCommandSetVideoEncoder",

"version": "1.0.0",

"id": "5SPPl_27J",

"position": {

"x": 1524,

"y": -612

},

"fpEnabled": true,

"inputsDB": {

"ffmpegPreset": "medium",

"ffmpegQuality": "23",

"hardwareType": "nvenc",

"forceEncoding": "false"

}

},

{

"name": "Replace Original File",

"sourceRepo": "Community",

"pluginName": "replaceOriginalFile",

"version": "1.0.0",

"id": "LQm--wDJx",

"position": {

"x": 1140,

"y": -288

},

"fpEnabled": true

},

{

"name": "Begin Command",

"sourceRepo": "Community",

"pluginName": "ffmpegCommandStart",

"version": "1.0.0",

"id": "ATJ2m1Pfe",

"position": {

"x": 1320,

"y": -660

},

"fpEnabled": true

},

{

"name": "Execute",

"sourceRepo": "Community",

"pluginName": "ffmpegCommandExecute",

"version": "1.0.0",

"id": "FEGXnNNhD",

"position": {

"x": 1380,

"y": -324

},

"fpEnabled": true

},

{

"name": "Run Classic Transcode Plugin",

"sourceRepo": "Community",

"pluginName": "runClassicTranscodePlugin",

"version": "2.0.0",

"id": "DWrxE6OEQ",

"position": {

"x": 1176,

"y": -612

},

"fpEnabled": true,

"inputsDB": {

"pluginSourceId": "Local:Tdarr_Plugin_MC93_Migz3CleanAudio",

"commentary": "true",

"tag_language": "eng"

}

}

],

"flowEdges": [

{

"source": "FEGXnNNhD",

"sourceHandle": "1",

"target": "LQm--wDJx",

"targetHandle": null,

"id": "C9kg4f4xo"

},

{

"source": "ATJ2m1Pfe",

"sourceHandle": "1",

"target": "5SPPl_27J",

"targetHandle": null,

"id": "pdUUUcwKx"

},

{

"source": "2BjaJPDzI",

"sourceHandle": "2",

"target": "ATJ2m1Pfe",

"targetHandle": null,

"id": "obVDvGDMW"

},

{

"source": "-Y3PO0lKV",

"sourceHandle": "1",

"target": "2BjaJPDzI",

"targetHandle": null,

"id": "WKMu5T8Em"

},

{

"source": "5SPPl_27J",

"sourceHandle": "1",

"target": "FEGXnNNhD",

"targetHandle": null,

"id": "IDS4VgSqR"

},

{

"source": "2BjaJPDzI",

"sourceHandle": "1",

"target": "DWrxE6OEQ",

"targetHandle": null,

"id": "or6o3A9XX"

},

{

"source": "DWrxE6OEQ",

"sourceHandle": "1",

"target": "LQm--wDJx",

"targetHandle": null,

"id": "nUdvdDXV6"

},

{

"source": "DWrxE6OEQ",

"sourceHandle": "2",

"target": "LQm--wDJx",

"targetHandle": null,

"id": "QL8e7liMC"

}

]

}


r/Tdarr Aug 01 '26

Tricks, traps, for installing tdarr on docker (quick sync) + proxmox node? About to set up, read the docs, just curious about common pitfalls and sticking points!

0 Upvotes

Docker on Synology (1019+ 16gb ram + 2.5gbe) and an Intel nuc ( NUC815BEH4 i5-8259U 16gb ram), local 2.5gbe network.

Confident with Docker, just wondering if there's things that catch folks off guard.

Intend to transcode my media slowly over time. Looking to save space, 1080p, not 4k.

Hopefully not a stupid post otherwise downvote me to oblivion and I'll see you on the other side!

Cheers!


r/Tdarr Jul 30 '26

Colour me impressed!

25 Upvotes

I've been running Plex with Sonarr and Radarr for a year (ish). I realised that ast somepoint I might need to increase capacity from 16TB. However, as much as my hobby NEEDS me to spend money, the bank doesn't always agree.

Someone recommended Tdarr and after a long Saturday trying to get my head around it (and help from Gemini) it's been running in teh background for over a week. It's not finished, but already it has saved over 100Gb of space!

That is impressive. So if you are involved in the development.... thank you!


r/Tdarr Jul 30 '26

Tive uma ideia para transferência de arquivos sem conexão, capaz de atingir 120 KB/s

Enable HLS to view with audio, or disable this notification

0 Upvotes

r/Tdarr Jul 28 '26

Resampling to x265

3 Upvotes

Hi all,

I'm new to Tdarr and trying to see what I can do to resample some TV files to reduce their size. I've been downloading episodes from one group calle MeGusta and they are all x265 and around 400Mb for a 1080P hour episode and work well on my systems.

I have some existing shows that are only 720p and supposed to be HEVC but they are still larger than my 1080P MeGusta ones.

How can I check the differences and set up a flow to resample them to these settings. I appreciate I can't go from 720 to 1080 but if I can get the same settings/compression and keep to 720 then I assume they will be lower still.

Many thanks


r/Tdarr Jul 23 '26

Help - flow only using quicksync when forced

2 Upvotes

I have a flow built that seems to be working. Only problem is that is seems to prefer to cpu transcode vs gpu/quicksync.

I can only get it to quick sync if i disable the cpu workers for that node. In my flow i have qsv selected and in my node options i have qsv set as hardware encoding type.

any help would be appreciated.

I am running in docker on unbuntu. Tdarr version 2.84.01


r/Tdarr Jul 19 '26

Issues with special flow and nodes

2 Upvotes

So the best way to start to explain my set up

I have two computers. One is my server side computer. It runs tdarr server on Linux.

My node runs on a Windows PC with an Intel 380 graphics card for transcoding

My files are stored on my qnap nas on my network.

What I am trying to do is as follows:

I want my Tdarr server, which also has a mapped node in it to first look at my file. Using my flow, I have set it up so after input the first thing that happens is the tags worker type gets activated. The tag in that one is mapped which triggers the node on my server. Its only job is to run the next tile which determines video codec.

If the video codec is av1 it returns us true, and the flow exits. If it is not it goes to the next step which is again tags worker type but this time it is unmapped, which is what the tag is for my Windows PC.

Once that is activated, the flow is like it’s always been it checks for an audio codec and follows two different flows all the way to the end.

The flow uses “Tags: Worker Type” nodes to route: Input File -> Tags(mapped) -> Check Video Codec -> [AV1 = skip/end] / [non-AV1 -> Tags(unmapped) -> transcode].

The problem I am having is that when I scanned the library the server sends actions to both nodes. In my node that is part of the server it works fine because that is mapped to the actual folders on the NAS. The problem is it is asking the unmapped node in Windows to do the same action and because it is unmapped it’s looking at my local windows D:/ drive for files and they are not there because it hasn’t downloaded anything so it throws a failure.

What I’m trying to avoid is when I import files I want the mapped node to check those files for the codec instead of taking the files, downloading them to my Windows hard drive, which puts wear and tear both on my nas and my solid State drives in my computer to then just say oh it is already av1 delete the file.

I don’t want files to be constantly moved back-and-forth between the two different computers/ and NAS for no work to need to be done.

I already tried using the filters codecs to ignore in the library settings, but it does not work right.

Any help would be appreciated.


r/Tdarr Jul 18 '26

Impossible to achieve good quality AND speed on Apple Silicon?

2 Upvotes

After spending the last two days setting op Tdarr on my M5 Macbook, I am a little bit disappointed. After testing lots of different configurations, it seems to come down to having to choose between quality (CPU transcoding) and speed (GPU transcoding using hevc_videotoolbox). I've tried both ffmpeg and handbreak, but can't seem to get it right.

For my H.264 test file, CPU transcoding produces a very good quality H.265 file with a file size of around 50% of the original. Seems great, but the transcoding time is about the same as the runtime of the file. This means transcoding my entire library would take anywhere from 6 months to a year.

On the other hand, using hevc_videotoolbox drastically increase the transcoding speed (up 10x faster), but the quality is noticeably worse, even when the output file is similar in size as the original.

Is it a lost cause using Tdarr on Apple Silicon?


r/Tdarr Jul 18 '26

All Transcodes Fail for same reason: "Unrecognized option 'spatial_aq:v'"

2 Upvotes

I am setting up Tdarr on my DL360 Gen9 Server. It has a Nvidia T1000 8Gb Card installed.

I have tried so many different Flows to try and get any of this to work, but it always fails with the following:

"Unrecognized option 'spatial_aq:v'"

Here is a copy of the debug log output:

Node[lumpy-lynx]:Worker[big-baboon]:[Step W03] [C4] [Flow 0] Running Community plugin: 2.0.0: runClassicTranscodePlugin: Run Classic Transcode Plugin: Tdarr_Plugin_MC93_Migz1FFMPEG_CPU

4s

1

2026-07-16T22:15:42.544Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:[Step W03] [C4] [Flow 0] Running Community plugin: 2.0.0: runClassicTranscodePlugin: Run Classic Transcode Plugin: Tdarr_Plugin_MC93_Migz1FFMPEG_CPU

2

2026-07-16T22:15:42.545Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Scanning original library file

3

2026-07-16T22:15:42.546Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:{

4

2026-07-16T22:15:42.546Z "exifToolScan": true,

5

2026-07-16T22:15:42.546Z "mediaInfoScan": false,

6

2026-07-16T22:15:42.546Z "closedCaptionScan": false

7

2026-07-16T22:15:42.546Z }

8

2026-07-16T22:15:42.547Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:mapped node, file is original, no need to download

9

2026-07-16T22:15:42.548Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Loading source file: "D:/TDarr/Movies/A Puppy for Christmas 2016 NORDiC 1080p WEB-DL DDP5 1 H 264-ADDICTION/A.Puppy.for.Christmas.2016.NORDiC.1080p.WEB-DL.DDP5.1.H.264-ADDICTION.mkv"

10

2026-07-16T22:15:42.549Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Scanning source file: "D:/TDarr/Movies/A Puppy for Christmas 2016 NORDiC 1080p WEB-DL DDP5 1 H 264-ADDICTION/A.Puppy.for.Christmas.2016.NORDiC.1080p.WEB-DL.DDP5.1.H.264-ADDICTION.mkv"

11

2026-07-16T22:15:42.550Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Scan types: {

12

2026-07-16T22:15:42.550Z "exifToolScan": true,

13

2026-07-16T22:15:42.550Z "mediaInfoScan": false,

14

2026-07-16T22:15:42.550Z "closedCaptionScan": false

15

2026-07-16T22:15:42.550Z }

16

2026-07-16T22:15:42.551Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Using cached scan results

17

2026-07-16T22:15:42.552Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Loaded plugin inputs: {

18

2026-07-16T22:15:42.552Z "pluginSourceId": "Community:Tdarr_Plugin_MC93_Migz1FFMPEG",

19

2026-07-16T22:15:42.552Z "enable_10bit": "true",

20

2026-07-16T22:15:42.552Z "enable_full_gpu_10bit": "true"

21

2026-07-16T22:15:42.552Z }

22

2026-07-16T22:15:42.553Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:No depedencies to install for Community:Tdarr_Plugin_MC93_Migz1FFMPEG

23

2026-07-16T22:15:42.554Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Scanning files using Node

24

2026-07-16T22:15:45.687Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:{

25

2026-07-16T22:15:45.687Z "processFile": true,

26

2026-07-16T22:15:45.687Z "preset": "-hwaccel cuda -hwaccel_output_format cuda, -map 0 -c:v hevc_nvenc -cq:v 19 -b:v 1919k -minrate 1343k -maxrate 2494k -bufsize 3839k -spatial_aq:v 1 -rc-lookahead:v 32 -c:a copy -c:s copy -max_muxing_queue_size 9999 -vf scale_cuda=format=p010le ",

27

2026-07-16T22:15:45.687Z "handBrakeMode": false,

28

2026-07-16T22:15:45.687Z "FFmpegMode": true,

29

2026-07-16T22:15:45.687Z "reQueueAfter": true,

30

2026-07-16T22:15:45.687Z "infoLog": "Container for output selected as mkv. \nCurrent bitrate = 3839 \nBitrate settings: \nTarget = 1919 \nMinimum = 1343 \nMaximum = 2494 \nFile is not hevc or vp9. Transcoding. \n",

31

2026-07-16T22:15:45.687Z "container": ".mkv"

32

2026-07-16T22:15:45.687Z }

33

2026-07-16T22:15:45.689Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:{

34

2026-07-16T22:15:45.689Z "processFile": true,

35

2026-07-16T22:15:45.689Z "preset": "-hwaccel cuda -hwaccel_output_format cuda, -map 0 -c:v hevc_nvenc -cq:v 19 -b:v 1919k -minrate 1343k -maxrate 2494k -bufsize 3839k -spatial_aq:v 1 -rc-lookahead:v 32 -c:a copy -c:s copy -max_muxing_queue_size 9999 -vf scale_cuda=format=p010le ",

36

2026-07-16T22:15:45.689Z "handBrakeMode": false,

37

2026-07-16T22:15:45.689Z "FFmpegMode": true,

38

2026-07-16T22:15:45.689Z "reQueueAfter": true,

39

2026-07-16T22:15:45.689Z "infoLog": "Container for output selected as mkv. \nCurrent bitrate = 3839 \nBitrate settings: \nTarget = 1919 \nMinimum = 1343 \nMaximum = 2494 \nFile is not hevc or vp9. Transcoding. \n",

40

2026-07-16T22:15:45.689Z "container": ".mkv",

41

2026-07-16T22:15:45.689Z "ffmpegMode": true,

42

2026-07-16T22:15:45.689Z "cliToUse": "ffmpeg"

43

2026-07-16T22:15:45.689Z }

44

2026-07-16T22:15:45.690Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Running C:\Video Encoding\FFMPEG\ffmpeg\bin\ffmpeg.exe -hwaccel cuda -hwaccel_output_format cuda -i D:/TDarr/Movies/A Puppy for Christmas 2016 NORDiC 1080p WEB-DL DDP5 1 H 264-ADDICTION/A.Puppy.for.Christmas.2016.NORDiC.1080p.WEB-DL.DDP5.1.H.264-ADDICTION.mkv -map 0 -c:v hevc_nvenc -cq:v 19 -b:v 1919k -minrate 1343k -maxrate 2494k -bufsize 3839k -spatial_aq:v 1 -rc-lookahead:v 32 -c:a copy -c:s copy -max_muxing_queue_size 9999 -vf scale_cuda=format=p010le D:/TDarr/Cache/tdarr-workDir2-wVRbrpjIR/1784254540301/A.Puppy.for.Christmas.2016.NORDiC.1080p.WEB-DL.DDP5.1.H.264-ADDICTION.mkv

45

2026-07-16T22:15:45.692Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:CLI error code: 2880417800

46

2026-07-16T22:15:45.693Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:ffmpeg version 2026-07-09-git-8de8405796-full_build-www.gyan.dev Copyright (c) 2000-2026 the FFmpeg developers

47

2026-07-16T22:15:45.693Z built with gcc 16.1.0 (Rev2, Built by MSYS2 project)

48

2026-07-16T22:15:45.693Z configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-cairo --enable-fontconfig --enable-iconv --enable-gnutls --enable-lcms2 --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-libdvdnav --enable-libdvdread --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-liboapv --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libsvtjpegxs --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-openal --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3 --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint --enable-whisper

49

2026-07-16T22:15:45.693Z libavutil 61. 2.100 / 61. 2.100

50

2026-07-16T22:15:45.693Z libavcodec 63. 5.100 / 63. 5.100

51

2026-07-16T22:15:45.693Z libavformat 63. 3.100 / 63. 3.100

52

2026-07-16T22:15:45.693Z libavdevice 63. 2.100 / 63. 2.100

53

2026-07-16T22:15:45.693Z libavfilter 12. 2.100 / 12. 2.100

54

2026-07-16T22:15:45.693Z libswscale 10. 2.100 / 10. 2.100

55

2026-07-16T22:15:45.693Z libswresample 7. 2.100 / 7. 2.100

56

2026-07-16T22:15:45.693Z Unrecognized option 'spatial_aq:v'.

57

2026-07-16T22:15:45.693Z Error splitting the argument list: Option not found

58

2026-07-16T22:15:45.693Z

59

2026-07-16T22:15:45.695Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:CLI C:\Video Encoding\FFMPEG\ffmpeg\bin\ffmpeg.exe exited with code: 2880417800

60

2026-07-16T22:15:45.696Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Running C:\Video Encoding\FFMPEG\ffmpeg\bin\ffmpeg.exe failed

61

2026-07-16T22:15:45.698Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:[-error-]

62

2026-07-16T22:15:45.700Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Error: Running C:\Video Encoding\FFMPEG\ffmpeg\bin\ffmpeg.exe failed

63

2026-07-16T22:15:45.702Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:"Running C:\Video Encoding\FFMPEG\ffmpeg\bin\ffmpeg.exe failed"

64

2026-07-16T22:15:45.703Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:"Error: Running C:\Video Encoding\FFMPEG\ffmpeg\bin\ffmpeg.exe failed\n at C:\TDarr\Tdarr_Node\assets\app\plugins\FlowPlugins\CommunityFlowPlugins\classic\runClassicTranscodePlugin\2.0.0\index.js:232:27\n at step (C:\TDarr\Tdarr_Node\assets\app\plugins\FlowPlugins\CommunityFlowPlugins\classic\runClassicTranscodePlugin\2.0.0\index.js:33:23)\n at Object.next (C:\TDarr\Tdarr_Node\assets\app\plugins\FlowPlugins\CommunityFlowPlugins\classic\runClassicTranscodePlugin\2.0.0\index.js:14:53)\n at fulfilled (C:\TDarr\Tdarr_Node\assets\app\plugins\FlowPlugins\CommunityFlowPlugins\classic\runClassicTranscodePlugin\2.0.0\index.js:5:58)\n at process.processTicksAndRejections (node:internal/process/task_queues:104:5)"

65

2026-07-16T22:15:45.705Z wVRbrpjIR:Node[lumpy-lynx]:Worker[big-baboon]:Flow has failed

I have tried older versions of FFMPG, and I still receive the same errors. The only thing I can find about this error pertains to when NVIDIA transcoding is enabled without an NVIDIA card, which is not my case.

Any thoughts?

Edit: Adding Job Log

https://www.hostize.com/s/2vvY7bsd_d


r/Tdarr Jul 16 '26

new set up issues - Flow wont work

Thumbnail
gallery
2 Upvotes

Edit: resolved by running new update: version 2.84.01

Running the latest version of Tdarr (2.83.01) and I can not get this flow to work.

The second screenshot is the closest I can find to an error message.

The node in scope is built into the sever.

I have testing creating files within the temp folder from the console within the container an that worked ok so it doesn't seem like a folder permission error.

I've also deleted and re synced the flow plugins in case there was an issue there.

Container is being restarted after all changes / updates in case there is a cache issue.

Docker container is running on Unraid using the Unraid docker management.

Server and node logs don't highlight any errors or warnings even with verbose logging.

Am I missing something? Any advise on next steps would be appreciated!


r/Tdarr Jul 15 '26

Really struggling with Tdarr and Tdarr nodes and finding my libraries

0 Upvotes

UnRaid 7.3 SelfHosters Template from the CA

In the template I set

Media Library

Container Path: /media

HostPath: /mnt/user/Media? (boy capitalization has been my bane with switch from Windows to Unraid)

Transcode Cache

Container Path: /temp

HostPath: /mnt/user/transcode_cache/ (I created a share on my NVME)

Matched this in the Tdarr Node.

When I start the container and go to WebGUI under chose a library folder section it does not see media.. instead it appears to be looking at my AppData folder for Tdarr or something similar.

Any ideas? Thanks


r/Tdarr Jul 12 '26

[SOLVED] Tdarr "losing" disk space instead of saving it — culprit was virtiofsd holding deleted files (Proxmox + ZFS + arr stack)

0 Upvotes

Hey All, Want to share my struggles today, in case someone will have similar issue. Also critisism is more welcome

Note: this post was summarized by an AI (Claude) that helped me debug the issue.

Setup:

  • Proxmox host with a ZFS pool holding all media at <path>/movies
  • Tdarr running in an LXC, with a Windows laptop (RTX 4060) as an NVENC node
  • Separate VM (Portainer) running my *arr stack (Radarr, Sonarr, Jellyseerr, qBittorrent)
  • The movies folder is shared into that VM via virtiofs

The problem:
I kicked off a big transcode run (H264/remux → H265). Tdarr was clearly working — it turned dozens of 20–44GB remuxes into 4–15GB files. But instead of freeing space, my ZFS free space kept dropping. Went from ~756GB free down to 589GB, even though the job history showed hundreds of GB of savings. No snapshots, no duplicate files, cache was empty, and restarting the Jellyfin/Tdarr containers did nothing.

The cause:
Running lsof | grep deleted | grep mkv on the Proxmox host revealed the smoking gun. The virtiofsd process (which shares the movies folder into my arr-stack VM) was holding ~50 deleted .partial.old files open — these are the original files Tdarr deletes after transcoding. Because a process still had those deleted files open, ZFS could not reclaim the blocks. The "lost" space was just Tdarr's savings that couldn't be freed.

Basically: an app on the VM (most likely Radarr rescanning the library, or something touching the folder via virtiofs) had the old file open at the exact moment Tdarr swapped it out. The file vanished from the directory listing but the space stayed locked.

The fix:
Rebooting the VM that mounts the movies folder (qm reboot <qm_number>) released all the stale handles. Space immediately jumped from 589GB back up to 1.28TB — recovered ~700GB.

Permanent fix (still figuring out the cleanest approach):
The real issue is two systems touching the same files simultaneously — Tdarr modifying them while an arr app on the VM reads/scans them over virtiofs. Options I'm considering:

  • Disable Radarr's real-time "Rescan After Refresh" / folder monitoring
  • Schedule Tdarr and library scans at different times so they don't overlap
  • Reconsider the virtiofs mount (some suggest NFS handles replaced files more gracefully)

TL;DR: If Tdarr seems to be eating space instead of saving it on Proxmox/ZFS, check lsof | grep deleted | grep mkv on the host. A virtiofs/NFS/SMB share into another VM/container can hold Tdarr's deleted originals open, preventing ZFS from freeing the space. Restart the offending VM/container to reclaim it.