Такие программы, как curl или wget имеют параметры --continue (wget) и --continue-at (curl), которые позволяют возобновлять прерванные загрузки, если данные не были повреждены.
wget по умолчанию автоматически попытается возобновить загрузку, когда произойдет прерывание, поэтому вам не придется беспокоиться о нестабильной передаче.
Опция curl --continue-at обычно требует числового значения, но если вы передадите его - вместо числа, он будет использовать свой выходной файл, чтобы определить, с какой точки он должен начать загрузку.
Пример использования (от man wget) wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z , curl ftp://sunsite.doc.ic.ac.uk/ls-lR.Z -o myfile.Z --continue-at -
Если вам нужно использовать некоторые конкретные файлы cookie, заголовки, отправку данных POST или что-либо еще для получения файла, современные браузеры (через панель инструментов разработчика, например, F12) позволяют вам скопировать команду запроса curl которую можно использовать для доступа к этому ресурсу. (см. изображения)
Fire Fox:

Хром:

Просто скопируйте это как curl а затем вставьте в консоль, добавив соответствующие флаги. Если команда не выполнена, вы можете просто вызвать curl еще раз (куки могут быть признаны недействительными, поэтому вам может потребоваться запросить в браузере новую команду curl ) и продолжить загрузку.
Это может показаться сложным процессом получения команды, но он очень универсален - можно загружать почти все виды материалов, которые вы просматриваете в браузере, с помощью команды curl предоставляемой браузером, возможно угадывая следующие ссылки 1 и вставляя вывод вместе.
1 Книга может быть загружена таким образом, что вы загружаете не весь PDF по одному запросу, а страницу за страницей, каждая по разному адресу. Поэтому вам нужно отправить запрос на www.example.com/page1.pdf , www.example.com/page2.pdf и www.example.com/page3.pdf , чтобы получить три страницы.
Некоторые видеопотоки не отправляют видео по одному запросу, но требуют, чтобы клиент спрашивал о каждом сегменте видео отдельно.
В обоих случаях механизм прост: угадать следующий шаблон генерации ссылок, запросить все ссылки и затем "объединить" (в зависимости от типа файла) выходные данные.