#!/usr/bin/env python import sys, os try: import urllib.request as compat_urllib_request except ImportError: # Python 2 import urllib2 as compat_urllib_request sys.stderr.write(u'Hi! We changed distribution method and now youtube-dl needs to update itself one more time.\n') sys.stderr.write(u'This will only happen once. Simply press enter to go on. Sorry for the trouble!\n') sys.stderr.write(u'The new location of the binaries is https://github.com/rg3/youtube-dl/downloads, not the git repository.\n\n') try: raw_input() except NameError: # Python 3 input() filename = sys.argv[0] API_URL = "https://api.github.com/repos/rg3/youtube-dl/downloads" BIN_URL = "https://github.com/downloads/rg3/youtube-dl/youtube-dl" if not os.access(filename, os.W_OK): sys.exit('ERROR: no write permissions on %s' % filename) try: urlh = compat_urllib_request.urlopen(BIN_URL) newcontent = urlh.read() urlh.close() except (IOError, OSError) as err: sys.exit('ERROR: unable to download latest version') try: with open(filename, 'wb') as outf: outf.write(newcontent) except (IOError, OSError) as err: sys.exit('ERROR: unable to overwrite current version') sys.stderr.write(u'Done! Now you can run youtube-dl.\n')