setvisible / ArrowDL

ArrowDL (Arrow Downloader) is a download manager for Windows, MacOS and Linux
https://www.arrow-dl.com/
GNU Lesser General Public License v3.0
549 stars 30 forks source link

Feature request: Plugins API #132

Open axet opened 4 months ago

axet commented 4 months ago

Hello!

Project missing good extendable plugins API.

1) C++ API dynamically loading libraries 2) Python dynamically loading libraries 3) shell/exec scripts (wget, curl, aria2)

API could support different plugins coverage (from simple request, up to detailed download information):

1) Simple download API (ftp/http) 1.1) Basic retrieval API 1.2) Progress API 1.3) Multi-threading/per thread information API 2) Torrent engines 3) Video hosting

Simple download API can support only two arguments / interfaces: url/hash info, download completed.

Extended download API can support download progress information, even more complex API can support information per thread / download including downloading information like ranges, peer info.

Adding API can increase durability of the project by extending it via external plugins. For example I would like to have option to replace build-in youtube download functionality with youtube-dl python script or yt-dl. If for some reason build-in engine fails.

Linux is missing good reliable download manager with good UI. I hope to see more details on download items, download thread information, download block map, error/info loging per download thread, protocol details (ftp, http version, torrent details, video quality, http range) etc. Like most modern windows download manger do.