Youtube-dl (well, yt-dlp, the non-dead version) will ignore the ads.
There are others though.
What the hell. Is this an entire OS?
So it uses redis and elastic search in the backend.
It definitely isnt lightweight, but I like its interface the best out of all solutions.
This is the script: https://github.com/danisztls/yt-assistant. AFAIK the same can be done with a single line yt-dlp command and you can do the same to download all videos from a channel.