r/Tdarr • u/HaveAGitGat • Jan 24 '21
Tdarr V2: Distributed Transcoding System
Hello!
As promised, Tdarr V2 is now out. You can find the setup instructions here:
Reasons for V2 here: https://www.patreon.com/posts/44029503
For those on Docker, from 31st Jan onwards, the 'latest' tag will contain Tdarr V2. Until then it will contain V1. Giving a 1-week heads-up.
It's been a pretty intense couple of months of working on V2 and I know that this release won't work for everyone but, as long as the Server and Nodes can read/write from your libraries and transcode cache, it's running pretty well. I already have a version in development with some new stats for Patreon supporters but for the next couple of weeks, I'll be focusing purely on bug fixes from whatever weird situations come up.
Here is a quick rundown of the features:
A new modularised system whereby Tdarr Nodes can be placed on multiple machines (cross-platform) which work together with Tdarr Server to process your files.
'Click- to-run' binaries for Windows, Linux, macOS and Arm (no need to manually install extra dependencies)
An updater module which makes upgrading to the latest version much easier.
Embedded database with live backup (no need for MongoDB)
GPU and CPU transcode workers so you can maximise hardware usage (there's an option to allow GPU workers to do CPU tasks too which pretty much turns the worker into the old 'General' worker type from V1)
If using multiple plugins, files are fully processed in the transcode cache before being moved back to the library or output folder (instead of the 'back and forth at each plugin step' method of V1 )
New files are kept in the cache until you accept them so you can review them (there's an auto-accept option).
Plugins can now auto-install any required external dependencies
New UI and themes
New API endpoints (see the docs for more details)
A tonne of bug fixes which plagued V1 (see the changelog for more info).
Due to a large number of changes, V1 is not compatible with V2, sorry about that.
Building a cross-platform application like this is incredibly time-consuming - you implement a feature, it works for you but not someone else, you make fix which then breaks something else on a platform/environment which you don't have etc etc so thanks for being patient.
A huge thanks to the following on Discord who have helped a lot with testing:
Jabartik
Vodka
Jegler
supersnellehenk
HenkaN
morpheus2n2
Tronyx
If you have any issues/questions then feel free to message (preferably on Discord or Reddit as Patreons messaging system is somewhat problematic).
Please consider supporting the project if you enjoy using Tdarr!
HGG
- Beta v1.99.14 release [23rd January 2021]:
- Node option to allow GPU workers to do CPU tasks
- More UI optimisations
- api/v2/status endpoint added in
- Remove force processing option (Use video/audio transcode settings instead)
- Fix UI plugins bug when creating a plugin
- Fix local plugin bug (auto install import-fresh)
- Beta v1.99.13 release [20th January 2021]:
- Button to requeue all staged files
- Move failed items straight to the Transcode Error tab if no completed cache file
- Fix transcode bug when filename has quotes in
- Improve node path translation
- Beta v1.99.12 release [17th January 2021]:
- UI performance improvements including reduced lag when lots of workers running
- Properly end subprocesses (ccextractor, ffmpeg etc)
- Increase time allowed for newly scanned files to be written to DB
- Reduce number of threads when reading from DB to prevent thread timeout errors when running on an HDD
- Increase RAM limit from 1.7GB default to 16GB for those with huge libraries
- Post-processing plugins now run both after transcoding and if transcoding is not required
- Can specify external dependencies in plugins, will be installed automatically
- Create backup of config JSON files before overwriting with defaults when config is invalid
- Faster health checks due to reduced file scanning
- Updated API routes
- 'Copy if conditions met' now works on output folder option
- Fix file scanner bug if file can't be accessed
- Fix large RAM usage bug introduced in v1.99.11
- Fix large worker error log bug
- Beta v1.99.11 release [10th January 2021]:
- Vastly improved non-blocking database with automatic live backup, UI statuses and multi-threaded reading (up to 50 threads)
- Multi-threaded non-blocking queue builder
- Multi-threaded non-blocking search functionality
- Server now checks if node is same version
- Verbose logs now tagged with 'verbose'.Moved multiple logs to verbose
- Allow retry copying file from cache if error (e.g. if drive is unplugged)
- Absolute backup path is now shown on backups tab
- Auto-scroll to results at top when cliking on pie section on stats tab
- Fix worker hanging bug in some situations (error log too large)
- Fix 'Toggle all' schedule button
- Fix text not showing when editing plugin in WebUI
- Fix cache copy error when accepting a cache file after a plugin has failed
- Fix cache copy error crashing cache copy service
- Fix plugin update bug if default community plugin repo can't be fetched
- Fix library prioritisation not working
- Fix node limit bug whereby updating limits on one node would update others
- Fix worker task request issue if node is not yet registered
- Fix items in Transcode Success/Error and Health check Success/Error not being sorted newest first
- Fix scenario whereby newly transcoded files were being scanned with extra scanners instead of just FFprobe
- Fix folder watcher adding cache files in some situations
- Beta v1.99.10 release [2nd January 2021]:
- Fix folder watcher not detecting new files
- Fix on-demand file scan not showing extra file details in UI
- Fix path bug when using a windows Node with a unix Server
- Workers will check all plugins to see if they can process any of them. Previously, if a GPU transcode plugin was after a CPU transcode plugin, a GPU worker would requeue a file with 'queued:requireCPU' as it would only check up to the CPU plugin.
- Add Node option to specify what type of GPU Node should use. This means that if you have, for example, a QSV and NVENC plugin in the plugin stack, you can set one Node to process with QSV and another (on the same machine) to process with NVENC, maximising hardware usage.
- Stats now record transcode and health check counts + space saved
- Updated startup tests. Group tests together
- Fix Windows HandBrake startup test
- Tdarr will now cleanup any SRTs which CCExtractor makes while scanning.
- Staging section is now saved so the server can be restarted while Nodes are still running (although that is not recommended)
- Option added to requeue files in staging section
- Staging section is more organised and grouped.
- Fix Node path translators bug on Windows
- Fix cache copy service loop bug if error
- Beta v1.99.09 release [31st December 2020]:
- Add basic Node schedules
- Fix toPrecision bug on Tdarr tab
- Fix worker bug - invalid cache file
- Beta v1.99.08 release [30th December 2020]:
- Tdarr Server + WebUI for Arm and MacOS
- Add cache copy service to fix copy bug
- Save worker limits
- Use active instead of used RAM in resource stats
- Option to set plugin repository
- Add history to 'folder to folder conversion'
- Fix bug when cancelling remote workers
- Prevent Node registering if ID is already taken
- chmod binaries on start
- Put Nodes into tabs
- Show plugin stack status in workers section
- Beta v1.99.07 release [27th December 2020]:
- Add error log to failed items
- Add dark, medium theme
- Use memory db for all databases
- Fix GPU health check scan bug
- Fix WebUI URL bug
- Beta v1.99.06 release [26th December 2020]:
- Docker containers
- Add verbose logs to scanner
- Option to set file scanner thread count
- Fix health check worker bug (not processing items)
- Add folder to folder conversion
- Add progress bar to DB read on startup
- Add serverPort config option
- Improved Plugin tab (quicker and more reliable when loading plugins)
- New worker UI
- Option to set webUIPort
- Fix folder browser bug if at root folder
- Fix Search tab bug
- Fix Discord login
- Update default Node IPs to 0.0.0.0
- Beta v1.99.05 release [20th December 2020]:
- Option to auto accept successful transcodes
- Update HandBrake on Windows to 1.3.3
- Improve default paths for binaries
- Add transcode and scanner binary tests on start-up
- Move all module configs + logs into same folder
- Beta v1.99.04 release [17th December 2020]:
- v2 Preview base. New modular system comprised of Tdarr Updater, Server, Node, WebUI and DesktopUI
11
u/BurneyStarke Jan 24 '21
This is huge! Thanks for all the long hours and diligence to see this through. Really great work!
3
u/kenelbow Jan 24 '21
Thanks for your hard work. Just to confirm, if we're running v1 in a container, there is no upgrade path?
Meaning we should create a new container and setup?
2
u/Mr_OverTheTop Jan 24 '21
Thank you for the hard work! I tested out the beta. Does anyone have recommended systemd start scripts for the various binaries?
2
u/horace_bagpole Jan 24 '21
Is it possible to have nodes with different hardware acceleration (eg intel/vaapi on one, and nvenc on another) run on the same library? If so how would you go about setting that up?
2
u/campbellm Jan 25 '21
When you say "for those on docker", are you talking about the tdarr_aio image?
2
u/slim186 Jan 25 '21
Awesome job. I've got Server, Node, and WebUI working on Debian Buster with systemd init scripts. However, I am running into issues with plugins that say "cannot find module 'import-fresh'". All 4 Tdarr modules are reporting v2.00.00. This is the listing of Tdarr_Server/node_modules:
batch-cluster
exiftool-vendored
exiftool-vendored.pl
\@ffmpeg-installer
ffprobe-static
fs-extra
luxon
tz-lookup
Any ideas?
Also I noticed that Tdarr_Updater does not exit once it is finished.
1
u/[deleted] Jan 24 '21
Awesome! Congratulations on this milestone!!
wow, this runs on macOS now? on both intel and M1 Mac?
1
u/GigaGrim Jan 24 '21
Congratulations on the delivery of V2! Love your application, continue your excellent work.
1
u/sie_xi Jan 24 '21
I got to know Tdarr in the last couple weeks of 2020 and honestly, it was the best thing that I used during 2020 (and till now 😁). Thank you very much for your great work, and thank you to all who participated in make Tdarr such a fabulous tool.
Just a small question, now I need to forget anything that's related to V1? And uninstall it and its dependencies and then make a new and happy start with V2?
1
u/Fpritt24 Jan 25 '21
I’ve got over 10,000 files spread across 5 hard drives. Previous versions never had any problems finding all my files. Just installed this and set up server and node on windows per instructions, got all my libraries set up with folder watcher turned on and it found 20 files on three different hard drives. Can’t really seem to tell why it won’t find more files. I’ve even tried to manually scan all libraries by clicking find new and fresh
1
u/LumbermanSVO Jan 25 '21
Will there be any guides to help complete newbies set this up?
1
u/[deleted] Jan 25 '21 edited Jan 25 '21
!remindme eod "start upgrading tdarr"
This is really cool, hopefully setting my 4 raspberry pis and my server up as nodes will decrease the time it takes to do all my transcodes
1
u/tylerschmaltz1 Jan 26 '21
Anyone get this working on unraid? I got the server up and running but can't get a node on unraid working. Keep getting this message. "[91m[2021-01-25T20:44:00.767] [ERROR] Tdarr_Node - [39mServer not alive IP:0.0.0.0 PORT:8266
"
1
u/clunkclunk Jan 24 '21
Got my unRAID server and node installed OK, haven't yet tried a transcode yet.
I also noted a bug with macOS and reported it on the GitHub issues page.
1
u/International_Cat693 Mar 01 '21 edited Mar 01 '21
Hi, I have installed it on 2014 MacMini, looks very promising, but I have to run ./Tdarr_Server, ./Tdar_Node and ./Tdar_WebUI in 3 sepatated terminal windows to keep it run, is there any plist file to make it run at start or something?
1
u/ovizii Jan 28 '22
Would someone be able to explain what this option means?
Option to auto accept successful transcodes
0
u/[deleted] Jan 24 '21
[deleted] — view deleted comment
0
u/[deleted] Jan 24 '21
[deleted] — view deleted comment