41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								#!/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')
							 |