mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 00:25:15 +00:00 
			
		
		
		
	Add new --print-traffic option
This commit is contained in:
		@@ -148,6 +148,7 @@ class YoutubeDL(object):
 | 
			
		||||
    socket_timeout:    Time to wait for unresponsive hosts, in seconds
 | 
			
		||||
    bidi_workaround:   Work around buggy terminals without bidirectional text
 | 
			
		||||
                       support, using fridibi
 | 
			
		||||
    debug_printtraffic:Print out sent and received HTTP traffic
 | 
			
		||||
 | 
			
		||||
    The following parameters are not used by YoutubeDL itself, they are used by
 | 
			
		||||
    the FileDownloader:
 | 
			
		||||
@@ -1124,10 +1125,13 @@ class YoutubeDL(object):
 | 
			
		||||
            if 'http' in proxies and 'https' not in proxies:
 | 
			
		||||
                proxies['https'] = proxies['http']
 | 
			
		||||
        proxy_handler = compat_urllib_request.ProxyHandler(proxies)
 | 
			
		||||
 | 
			
		||||
        debuglevel = 1 if self.params.get('debug_printtraffic') else 0
 | 
			
		||||
        https_handler = make_HTTPS_handler(
 | 
			
		||||
            self.params.get('nocheckcertificate', False))
 | 
			
		||||
            self.params.get('nocheckcertificate', False), debuglevel=debuglevel)
 | 
			
		||||
        ydlh = YoutubeDLHandler(debuglevel=debuglevel)
 | 
			
		||||
        opener = compat_urllib_request.build_opener(
 | 
			
		||||
            https_handler, proxy_handler, cookie_processor, YoutubeDLHandler())
 | 
			
		||||
            https_handler, proxy_handler, cookie_processor, ydlh)
 | 
			
		||||
        # Delete the default user-agent header, which would otherwise apply in
 | 
			
		||||
        # cases where our custom HTTP handler doesn't come into play
 | 
			
		||||
        # (See https://github.com/rg3/youtube-dl/issues/1309 for details)
 | 
			
		||||
 
 | 
			
		||||
@@ -334,7 +334,9 @@ def parseOpts(overrideArguments=None):
 | 
			
		||||
    verbosity.add_option('--youtube-print-sig-code',
 | 
			
		||||
            action='store_true', dest='youtube_print_sig_code', default=False,
 | 
			
		||||
            help=optparse.SUPPRESS_HELP)
 | 
			
		||||
 | 
			
		||||
    verbosity.add_option('--print-traffic',
 | 
			
		||||
            dest='debug_printtraffic', action='store_true', default=False,
 | 
			
		||||
            help=optparse.SUPPRESS_HELP)
 | 
			
		||||
 | 
			
		||||
    filesystem.add_option('-t', '--title',
 | 
			
		||||
            action='store_true', dest='usetitle', help='use title in file name (default)', default=False)
 | 
			
		||||
@@ -696,6 +698,7 @@ def _real_main(argv=None):
 | 
			
		||||
        'proxy': opts.proxy,
 | 
			
		||||
        'socket_timeout': opts.socket_timeout,
 | 
			
		||||
        'bidi_workaround': opts.bidi_workaround,
 | 
			
		||||
        'debug_printtraffic': opts.debug_printtraffic,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    with YoutubeDL(ydl_opts) as ydl:
 | 
			
		||||
 
 | 
			
		||||
@@ -539,7 +539,8 @@ def formatSeconds(secs):
 | 
			
		||||
    else:
 | 
			
		||||
        return '%d' % secs
 | 
			
		||||
 | 
			
		||||
def make_HTTPS_handler(opts_no_check_certificate):
 | 
			
		||||
 | 
			
		||||
def make_HTTPS_handler(opts_no_check_certificate, **kwargs):
 | 
			
		||||
    if sys.version_info < (3, 2):
 | 
			
		||||
        import httplib
 | 
			
		||||
 | 
			
		||||
@@ -560,7 +561,7 @@ def make_HTTPS_handler(opts_no_check_certificate):
 | 
			
		||||
        class HTTPSHandlerV3(compat_urllib_request.HTTPSHandler):
 | 
			
		||||
            def https_open(self, req):
 | 
			
		||||
                return self.do_open(HTTPSConnectionV3, req)
 | 
			
		||||
        return HTTPSHandlerV3()
 | 
			
		||||
        return HTTPSHandlerV3(**kwargs)
 | 
			
		||||
    else:
 | 
			
		||||
        context = ssl.SSLContext(ssl.PROTOCOL_SSLv3)
 | 
			
		||||
        context.verify_mode = (ssl.CERT_NONE
 | 
			
		||||
@@ -571,7 +572,7 @@ def make_HTTPS_handler(opts_no_check_certificate):
 | 
			
		||||
            context.load_default_certs()
 | 
			
		||||
        except AttributeError:
 | 
			
		||||
            pass  # Python < 3.4
 | 
			
		||||
        return compat_urllib_request.HTTPSHandler(context=context)
 | 
			
		||||
        return compat_urllib_request.HTTPSHandler(context=context, **kwargs)
 | 
			
		||||
 | 
			
		||||
class ExtractorError(Exception):
 | 
			
		||||
    """Error during info extraction."""
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user