Retry when connection disconnect not working
Get a bash
, either via steve's win-bash
, the new windows10/Ubuntu thing or cygwin
Call youtube-dl like this:
while ! youtube-dl <video_uri> -c --socket-timeout 5; do echo DISCONNECTED; done
You may want to add some sleep time between retries.
while ! youtube-dl <video_uri> -c --socket-timeout 5; do echo DISCONNECTED; sleep 5; done
There should be a power shell equivalent, or an ugly batch while loop checking ERRORLEVEL
powershell equivalant:
Do { youtube-dl.exe <video_uri> -c } until ($?)
Educated guess
My best guess would be to specify a cache directory, and use the -c
flag to force it to continue downloads if possible.
Source: youtube-dl man page
--cache-dir DIR
Location in the filesystem where youtube-dl can store some downloaded information permanently. By default
$XDG_CACHE_HOME /youtube-dl or ~/.cache/youtube-dl . At the moment, only YouTube player files (for videos with obfus‐
cated signatures) are cached, but that may change.
-c, --continue
Force resume of partially downloaded files. By default, youtube-dl will resume downloads if possible.
Alternative solution
If you want to give python a try, this script should do what you need with some minor tweaking.
import sys
import youtube_dl
def download_no_matter_what(url):
try:
youtube_dl.YoutubeDL(options).download([url])
except OSError:
download_no_matter_what(url)
except KeyboardInterrupt:
sys.exit()
if __name__ == '__main__':
# Read the URL from the command line
url = sys.argv[1]
# Specify extra command line options here
options = {}
# GET THAT VIDEO!
download_no_matter_what(url)
Reference for the youtube_dl API: https://github.com/rg3/youtube-dl/blob/master/README.md#readme