]> git.bitcoin.ninja Git - youtube-dl/blobdiff - youtube_dl/__init__.py
Py2/3 compatibility for http.client
[youtube-dl] / youtube_dl / __init__.py
index 54c7d7f72ed82051ad738f2039c9017ae9d58ad9..0dc69556e74e513374b9f20b1157f6c5672bc1f9 100644 (file)
@@ -29,7 +29,6 @@ UPDATE_URL_VERSION = 'https://raw.github.com/rg3/youtube-dl/master/LATEST_VERSIO
 UPDATE_URL_EXE = 'https://raw.github.com/rg3/youtube-dl/master/youtube-dl.exe'
 
 
-import cookielib
 import getpass
 import optparse
 import os
@@ -38,7 +37,6 @@ import shlex
 import socket
 import subprocess
 import sys
-import urllib2
 import warnings
 
 from utils import *
@@ -55,7 +53,7 @@ def updateSelf(downloader, filename):
 
        downloader.to_screen(u'Updating to latest version...')
 
-       urlv = urllib2.urlopen(UPDATE_URL_VERSION)
+       urlv = compat_urllib_request.urlopen(UPDATE_URL_VERSION)
        newversion = urlv.read().strip()
        if newversion == __version__:
                downloader.to_screen(u'youtube-dl is up-to-date (' + __version__ + ')')
@@ -69,12 +67,12 @@ def updateSelf(downloader, filename):
                        sys.exit('ERROR: no write permissions on %s' % directory)
 
                try:
-                       urlh = urllib2.urlopen(UPDATE_URL_EXE)
+                       urlh = compat_urllib_request.urlopen(UPDATE_URL_EXE)
                        newcontent = urlh.read()
                        urlh.close()
                        with open(exe + '.new', 'wb') as outf:
                                outf.write(newcontent)
-               except (IOError, OSError), err:
+               except (IOError, OSError) as err:
                        sys.exit('ERROR: unable to download latest version')
 
                try:
@@ -89,21 +87,21 @@ del "%s"
                        b.close()
 
                        os.startfile(bat)
-               except (IOError, OSError), err:
+               except (IOError, OSError) as err:
                        sys.exit('ERROR: unable to overwrite current version')
 
        else:
                try:
-                       urlh = urllib2.urlopen(UPDATE_URL)
+                       urlh = compat_urllib_request.urlopen(UPDATE_URL)
                        newcontent = urlh.read()
                        urlh.close()
-               except (IOError, OSError), err:
+               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), err:
+               except (IOError, OSError) as err:
                        sys.exit('ERROR: unable to overwrite current version')
 
        downloader.to_screen(u'Updated youtube-dl. Restart youtube-dl to use the new version.')
@@ -380,13 +378,13 @@ def _real_main():
 
        # Open appropriate CookieJar
        if opts.cookiefile is None:
-               jar = cookielib.CookieJar()
+               jar = compat_cookiejar.CookieJar()
        else:
                try:
-                       jar = cookielib.MozillaCookieJar(opts.cookiefile)
+                       jar = compat_cookiejar.MozillaCookieJar(opts.cookiefile)
                        if os.path.isfile(opts.cookiefile) and os.access(opts.cookiefile, os.R_OK):
                                jar.load()
-               except (IOError, OSError), err:
+               except (IOError, OSError) as err:
                        sys.exit(u'ERROR: unable to open cookie file')
        # Set user agent
        if opts.user_agent is not None:
@@ -394,7 +392,7 @@ def _real_main():
 
        # Dump user agent
        if opts.dump_user_agent:
-               print std_headers['User-Agent']
+               print(std_headers['User-Agent'])
                sys.exit(0)
 
        # Batch file verification
@@ -414,10 +412,10 @@ def _real_main():
        all_urls = map(lambda url: url.strip(), all_urls)
 
        # General configuration
-       cookie_processor = urllib2.HTTPCookieProcessor(jar)
-       proxy_handler = urllib2.ProxyHandler()
-       opener = urllib2.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
-       urllib2.install_opener(opener)
+       cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar)
+       proxy_handler = compat_urllib_request.ProxyHandler()
+       opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
+       compat_urllib_request.install_opener(opener)
        socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words)
 
        extractors = gen_extractors()
@@ -450,7 +448,7 @@ def _real_main():
        if opts.retries is not None:
                try:
                        opts.retries = int(opts.retries)
-               except (TypeError, ValueError), err:
+               except (TypeError, ValueError) as err:
                        parser.error(u'invalid retry count specified')
        if opts.buffersize is not None:
                numeric_buffersize = FileDownloader.parse_bytes(opts.buffersize)
@@ -461,13 +459,13 @@ def _real_main():
                opts.playliststart = int(opts.playliststart)
                if opts.playliststart <= 0:
                        raise ValueError(u'Playlist start must be positive')
-       except (TypeError, ValueError), err:
+       except (TypeError, ValueError) as err:
                parser.error(u'invalid playlist start number specified')
        try:
                opts.playlistend = int(opts.playlistend)
                if opts.playlistend != -1 and (opts.playlistend <= 0 or opts.playlistend < opts.playliststart):
                        raise ValueError(u'Playlist end must be greater than playlist start')
-       except (TypeError, ValueError), err:
+       except (TypeError, ValueError) as err:
                parser.error(u'invalid playlist end number specified')
        if opts.extractaudio:
                if opts.audioformat not in ['best', 'aac', 'mp3', 'vorbis', 'm4a', 'wav']:
@@ -559,7 +557,7 @@ def _real_main():
        if opts.cookiefile is not None:
                try:
                        jar.save()
-               except (IOError, OSError), err:
+               except (IOError, OSError) as err:
                        sys.exit(u'ERROR: unable to save cookie jar')
 
        sys.exit(retcode)