aniyomiorg / aniyomi

An app for manga and anime
https://aniyomi.org
Apache License 2.0
5.14k stars 321 forks source link

A better downloader #1610

Open Sadwhy opened 5 months ago

Sadwhy commented 5 months ago

Describe your suggested feature

The current ffmpeg downloader that the app uses can't handle any kinds of exceptions. If you disconnect your internet for a second it will delete all the progress and will not try to recover and start downloading from where it stopped. You also can't pause it yada yada. Y'all made this app y'all probably know how it works.

Ffmpeg isn't really a proper downloader so use another kind of library that can handle exceptions. My only requirements are multi-threaded, sequential and parallel downloads, the ability to control how many threads to use and if you want it to be sequential or parallel. Pausing, resuming, automatically pausing if no internet it detected and check for internet every 5 seconds to resume, estimated time and download speed output.

It's a lot to ask but the downloader in the app is really barebones so this much is needed.

Other details

I have found this cool library. It's simple but looks helpful https://github.com/khushpanchal/Ketch

Or just use aria2

Acknowledgements

kaishshaikh376 commented 5 months ago

This might be very helpful ngl

fakebhai commented 5 months ago

aria2 should be better, library you shared doesn't seem to support pause you mentioned (but is planned according to latest issue)

mayurjansari commented 5 months ago

lux alternative

giorgionegro commented 4 months ago

Aside from m3u8 streams the app shouldn't use ffmpeg for downloading. The regular downloader should, with some stability problems, be able to do a lot of what you requested (as of pull #1457 ). The library you provided, while interesting doesn't seam to support streams downloads which,I believe, are what you are referring to

Secozzi commented 3 months ago

A problem with ketch is that it doesn't seem to appear allowing embedding external subtitles or audio tracks, which means they would need to be muxed in afterwards with ffmpeg anyways