Seconded ytdl-sub, especially if you want them to work flawlessly with Kodi/Plex/Jellyfin (integrated into the library etc)
Other than that, tubesync is nice and has a decent web ui too.
I've been using Pinchflat for a while and so far it's been great for me. It can automatically rescan the channel or playlist on a defined time (like every day or every week), and download new videos. It uses yt-dlp so you can configure all the parameters you want it to use for the download
Metube is great and also has some browser plugins as well so it's as simple as right click and send to metube on a YouTube link. Wish there was one for android too but alas not yet that I have seen.
Some fork of youtube-dl would probably do.
Personally I use JDownloader 2 (open source) to download not just from youtube but from any other sites as well.
It runs locally.
I use pytube and a python script I have been growing and adding features for a while. Lots of examples for you to make something that suits your own needs.