Firefox _does_ have support for running this daemon-like-thing for you using Native messaging[0] though.
youtube-dl-firefox-addon[1] seems to employ this, so perhaps give that one a try?
[0] https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...
I've been using a combination of firefox/chrome with youtube-dl/mpv+youtube-dl for a while
This comes very handy for playing high quality youtube videos on low end machines or downloading audio+/-video directly from youtube.
On the pre-webextension era of firefox/chrome , "open with" addon was the perfect fit.
Now, a special native messaging app needs to be installed to launch mpv/youtube-dl
"Open with" addon solved this by a python script (that obviously required installing python, and few other steps)
I decided to create a new tool to make this step easier and faster on windows: owclauncher[1]
Basically a lightweight native messaging host for "open with" addon: it is not running on the background, and only started (and immediatly terminated) by the browser when passing a command to any other program
You can check and compile the source code or the .bat windows installer/uninstaller
Thanks!
Thanks.
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.)
The alternative I'm considering is a script for my WM that essentially does "CTRL+L, delay 500ms, CTRL+C, append to a rolling 'to yt-download' list file".
It sounds complicated but i had never written any firefox addon at all before trying it and it took me less than an hour to write the entire thing just by following the docs. The biggest change was switching from regular firefox to developer edition so i can disable signature checking for addons (the regular firefox doesn't allow that), but so far all that meant is that the red icon globe is now blue and i get more frequent updates.
None of that is available publicly though since it is very configuration-specific - and really all it does is to call 'youtube-dl' - but it is easy to replicate. Also learning to make some "personal" addons might be helpful in the future, similar to how you customize Emacs or Vim.
- bookmark url in a specific "YouTube-dl" folder
- watch tht folder from a daemon
- when the folder changes, do the stuff automatically
I'm sure there's a way to read bookmarks from outside the browser ?
Bookmarks don't seem that easy to exfil either. Firefox for instance (just checked) stores bookmarks, along with browsing and download history, in an sqlite database, that it keeps locked, so sqlite3 won't read from it. Maybe there's a way to force-read that database, but I haven't figured it out yet.
Here's an alternative idea I might actually go for: a systemd service[0] on my NAS in my home LAN that accepts links over the net and feeds them to youtube-dl. It could maintain a database of links already downloaded to avoid unnecessary redownloads. Then I could use an extension to simply send requests to an URL in my LAN.
My perfect UI would actually have this integrated with the Like button on YouTube. Click Like, it schedules a download. This is because there's plenty of videos that I wanted to get back to after few years, only to discover them gone (account banned, video removed, copyright bullshit, etc.).
--
[0] - Or something. There must be something in systemd that can be used to listen on a port, feed requests from it to a script, and reply with the output?
xterm -e yourube-dl --restrict-filename -o "~/downloads/%(title)s.%(ext)s" -f "best[height<=?1080]" $1
the height means no bigger than 1080 but if 1080 does not exist go to the next best down. i have a virtual desktop(tiling manager) that my downloads download at visually like wget youtube-dl and thats why i use xterm -e keeps them out of the way and trying to draw ontop elinks. the terminal automatically closes when done.
This is where I am most often when I see stuff I want to use it on and while I always already have a terminal window open, it would be nice not to have to switch windows.
I already have a few different configs and aliases for getting stuff in the forms I really want. All I need is an even easier way to pass the URL in and trigger the download.
Being able to right click and get there would please slack me to no end.