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.
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.
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
They read the sentence "Yt-dlp and a cron job" which triggered a hormonal reaction in their brain which they linked to arousal due to prior experience. They used this as an opportunity to retreat to a more private setting and indulge in auto erotic stimulation.
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.
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.