I'd love to replicate what you've set up. The web server and from job doesn't sound too difficult, but I'm confused about the browser extension and Android share option. I'd be very grateful if you could elaborate further on that.
You have been warned ;) It is horrible - I slapped that together to scratch my itch and been planning to rewrite ever since. Perhaps now is the time.
https://github.com/Piskvor/webfetchface
In essence, the core of the whole thing is a single SQLite table, with rows of URL+status (and some metadata).
The web interface lists these, and provides a form to insert more rows. There is no ACL, my instance is only secured by htaccess. (I have specifically chosen to use a web server, as I'm sharing the URLs from multiple devices, but I want to download them over my home link and save to my NAS.)
The cron job reads the table, fetches rows that are status=queued, calls yt-dl to download them, and updates their status accordingly (with some fallbacks and error handling).
There's some extra stuff - like using ffmpeg to make thumbnails - but the basic operation is extremely simple.
(Browser extension and Android sharing option do the exact same thing as the web interface: post the current URL through the web insert form. Those are optional, but allow me to add URLs without extra steps.
The browser extension is installed unpacked, through developer options, and has the URL hard-coded. It works both in FF and Chrome.
The Android share option is through https://play.google.com/store/apps/details?id=ch.rmy.android... , making a HTTP request directly - I'll add a README.)
Thanks.