how to make wget retry download if speed goes below certain threshold?

You could use the --tries option.

   --tries=number
       Set number of retries to number.  Specify 0 or inf for infinite
       retrying.  The default is to retry 20 times, with the exception of
       fatal errors like "connection refused" or "not found" (404), which
       are not retried.

So --tries=0 should do the trick.

That, combined with --read-timeout=seconds too. The seconds refers to idle time: if, at any point in the download, no data is received for more than the specified number of seconds, reading fails and the download is restarted.

So the final command:

wget -c --tries=0 --read-timeout=20 [URL]

Tags:

Wget