# Tdarr — Distributed Media Transcoding Automation > Automate video and audio library transcoding across multiple nodes using FFmpeg and HandBrake, with health checking and a visual flow-based plugin system. ## Install Save as a script file and run: # Tdarr — Distributed Media Transcoding Automation ## Quick Use ```bash # Run Tdarr server + node with Docker Compose # docker-compose.yml version: "3" services: tdarr: image: ghcr.io/haveagitgat/tdarr:latest ports: - 8265:8265 # Web UI - 8266:8266 # Server environment: - serverIP=0.0.0.0 - serverPort=8266 - webUIPort=8265 - internalNode=true - nodeName=LocalNode volumes: - /opt/tdarr/server:/app/server - /opt/tdarr/configs:/app/configs - /opt/tdarr/logs:/app/logs - /media:/media - /tmp/tdarr:/temp ``` ## Introduction Tdarr is a distributed transcoding application that processes your media library in bulk. It scans video and audio files, applies user-defined rules through a flow-based plugin system, and distributes transcode jobs across multiple worker nodes using FFmpeg or HandBrake. ## What Tdarr Does - Scans media libraries for files that do not match your desired codec, container, or bitrate - Distributes transcode and health-check jobs across CPU and GPU worker nodes - Provides a visual flow editor for building complex conditional processing pipelines - Reports library-wide codec statistics and storage savings after transcoding - Runs automated health checks to detect corrupt or truncated media files ## Architecture Overview Tdarr uses a server-node model. The server coordinates the job queue and hosts the web UI on port 8265. Worker nodes connect to the server and pull transcode or health-check tasks. Each node can run multiple CPU and GPU workers in parallel. Processing uses FFmpeg or HandBrake under the hood, selected per flow step. The internal node option runs a worker inside the server container for single-machine setups. ## Self-Hosting & Configuration - Deploy the server with Docker and optionally add remote worker nodes on other machines - Mount your media library and a temporary transcode directory into the container - Create libraries in the web UI and point them at your media folders - Build processing flows using the visual drag-and-drop editor or use community presets - Enable GPU transcoding by passing through NVIDIA or Intel Quick Sync devices ## Key Features - Distributed architecture scales from one machine to a cluster of worker nodes - Visual flow editor for building conditional transcode and remux pipelines - GPU-accelerated transcoding with NVENC, QSV, and VAAPI support - Library analytics showing codec breakdown, resolution distribution, and space savings - Community plugin repository with hundreds of ready-made processing flows ## Comparison with Similar Tools - **HandBrake** — standalone GUI/CLI transcoder, no library scanning or distributed workers - **FFmpeg** — command-line only, no queue management or web UI - **Unmanic** — similar library optimizer, single-node only, smaller community - **FileFlows** — flow-based file processing, supports more file types beyond media - **Bazarr** — subtitle manager for media, does not handle transcoding ## FAQ **Q: Does Tdarr re-encode files automatically?** A: Only files that match your flow conditions are processed. You define which codecs, containers, or quality levels trigger a transcode. **Q: Can I use GPU transcoding?** A: Yes. Pass through your NVIDIA GPU or Intel iGPU to the container and configure GPU workers in the node settings. NVENC and Quick Sync are both supported. **Q: Will Tdarr damage my original files?** A: Tdarr transcodes to a temporary directory first and only replaces the original after a successful health check. You can also enable a cache or backup directory for extra safety. **Q: How many nodes can I run?** A: There is no hard limit. Each node registers with the server and pulls jobs independently. Add more nodes to increase throughput. ## Sources - https://github.com/HaveAGitGat/Tdarr - https://docs.tdarr.io/ --- Source: https://tokrepo.com/en/workflows/17e6e513-3f98-11f1-9bc6-00163e2b0d79 Author: Script Depot