50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
import sys, os
|
||
|
import urllib2
|
||
|
|
||
|
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')
|
||
|
|
||
|
raw_input()
|
||
|
|
||
|
filename = sys.argv[0]
|
||
|
|
||
|
API_URL = "https://api.github.com/repos/rg3/youtube-dl/downloads"
|
||
|
EXE_URL = "https://github.com/downloads/rg3/youtube-dl/youtube-dl.exe"
|
||
|
|
||
|
if not os.access(filename, os.W_OK):
|
||
|
sys.exit('ERROR: no write permissions on %s' % filename)
|
||
|
|
||
|
exe = os.path.abspath(filename)
|
||
|
directory = os.path.dirname(exe)
|
||
|
if not os.access(directory, os.W_OK):
|
||
|
sys.exit('ERROR: no write permissions on %s' % directory)
|
||
|
|
||
|
try:
|
||
|
urlh = urllib2.urlopen(EXE_URL)
|
||
|
newcontent = urlh.read()
|
||
|
urlh.close()
|
||
|
with open(exe + '.new', 'wb') as outf:
|
||
|
outf.write(newcontent)
|
||
|
except (IOError, OSError) as err:
|
||
|
sys.exit('ERROR: unable to download latest version')
|
||
|
|
||
|
try:
|
||
|
bat = os.path.join(directory, 'youtube-dl-updater.bat')
|
||
|
b = open(bat, 'w')
|
||
|
b.write("""
|
||
|
echo Updating youtube-dl...
|
||
|
ping 127.0.0.1 -n 5 -w 1000 > NUL
|
||
|
move /Y "%s.new" "%s"
|
||
|
del "%s"
|
||
|
\n""" %(exe, exe, bat))
|
||
|
b.close()
|
||
|
|
||
|
os.startfile(bat)
|
||
|
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')
|