Add "Upload Web Media (yt-dlp)" feature

The idea would be to add a new “Upload Web Media (yt-dlp)” button to Seafile. In there people would be able to enter an HTTP URL. The seafile server would then use and download from that URL in combination with yt-dlp in the background.

This would basically be a convenience feature. A more convenient, one-step solution compared to running yt-dlp on the client device and then uploading the downloaded file to a Seafile server.

Additional/optional advanced options in this element would be a “download via client” option, where the seafile client would need to stay open (but would need a JavaScript version of yt-dlp?). Would be useful if the web content is geo-location bound. And format options, like you’d be presented from a “yt-dlp -F” and filename format options.

I used these two steps to make private backups of potentially depublicated videos/documentaries from YouTube and arte.tv in the past. To be able to rewatch them at some point in the future. Currently public, state funded broadcasting stations like Arte are so nice to fund and make great documentaries available for free online, which I think is great for public education. But often they have contracts with their film creators to only have these publicly available online for a limited amount of time, like a few months or a year.

On the Seafile server side one might want to have quota and rate-limiting options for this feature. And/or the option to restrict/default to a “download via client”. To reduce the risk of users abusing this feature in some setups.

The great thing with yt-dlp integration would also be that it is actively developed and will likely get support for more and more websites (and protocols?).

PS: yt-dlp is basically the successor of youtube-dl, as far as I know. And already has support for many more websites other than YouTube.

And another use-case for this could be to potentially save internet bandwidth more easily. For example a community housing project which shares the same, limited, slow internet connection:

Instead of one person watching a video on YouTube and then another person in the same community getting recommended the same video due to geolocation and downloading it again over the same line instead a Seafile server could help to only need to download it once. (Ideally there would then be a browser plugin, too, which could automatically, transparently use a Seafile server as a shared cache, while someone browses a yt-dlp compatible website. Or at least with a one-click feature, like the WayBackMachine browser plugin has with it’s “Save Page Now” button, which would be a more privacy preserving option.)

Point Download directory to Seafile Drive folder :slight_smile: