X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2F__init__.py;h=80f3b9f335cd32c84295280073f1942e291a07d9;hb=b08980412eb05250100f95bf2c2c8bb764c4b4c5;hp=823ca63a48cd72a888f8908e7de33ff2774b23a2;hpb=c34407d16c18df0e5045d00b46bfdc692329dcfd;p=youtube-dl diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 823ca63a4..80f3b9f33 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -25,10 +25,14 @@ __authors__ = ( 'Jeff Crouse', 'Osama Khalid', 'Michael Walter', + 'M. Yasoob Ullah Khalid', + 'Julien Fraichard', + 'Johny Mo Swag', ) __license__ = 'Public Domain' +import codecs import getpass import optparse import os @@ -147,6 +151,7 @@ def parseOpts(overrideArguments=None): action='store_true', dest='list_extractors', help='List all supported extractors and the URLs they would handle', default=False) general.add_option('--proxy', dest='proxy', default=None, help='Use the specified HTTP/HTTPS proxy', metavar='URL') + general.add_option('--no-check-certificate', action='store_true', dest='no_check_certificate', default=False, help='Suppress HTTPS certificate validation.') general.add_option('--test', action='store_true', dest='test', default=False, help=optparse.SUPPRESS_HELP) selection.add_option('--playlist-start', @@ -211,6 +216,8 @@ def parseOpts(overrideArguments=None): action='store_true', dest='geturl', help='simulate, quiet but print URL', default=False) verbosity.add_option('-e', '--get-title', action='store_true', dest='gettitle', help='simulate, quiet but print title', default=False) + verbosity.add_option('--get-id', + action='store_true', dest='getid', help='simulate, quiet but print id', default=False) verbosity.add_option('--get-thumbnail', action='store_true', dest='getthumbnail', help='simulate, quiet but print thumbnail URL', default=False) @@ -334,6 +341,11 @@ def parseOpts(overrideArguments=None): return parser, opts, args def _real_main(argv=None): + # Compatibility fixes for Windows + if sys.platform == 'win32': + # https://github.com/rg3/youtube-dl/issues/820 + codecs.register(lambda name: codecs.lookup('utf-8') if name == 'cp65001' else None) + parser, opts, args = parseOpts(argv) # Open appropriate CookieJar @@ -388,7 +400,7 @@ def _real_main(argv=None): if 'http' in proxies and 'https' not in proxies: proxies['https'] = proxies['http'] proxy_handler = compat_urllib_request.ProxyHandler(proxies) - https_handler = compat_urllib_request.HTTPSHandler() + https_handler = make_HTTPS_handler(opts) opener = compat_urllib_request.build_opener(https_handler, proxy_handler, cookie_processor, YoutubeDLHandler()) compat_urllib_request.install_opener(opener) socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words) @@ -485,15 +497,16 @@ def _real_main(argv=None): 'usenetrc': opts.usenetrc, 'username': opts.username, 'password': opts.password, - 'quiet': (opts.quiet or opts.geturl or opts.gettitle or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat), + 'quiet': (opts.quiet or opts.geturl or opts.gettitle or opts.getid or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat), 'forceurl': opts.geturl, 'forcetitle': opts.gettitle, + 'forceid': opts.getid, 'forcethumbnail': opts.getthumbnail, 'forcedescription': opts.getdescription, 'forcefilename': opts.getfilename, 'forceformat': opts.getformat, 'simulate': opts.simulate, - 'skip_download': (opts.skip_download or opts.simulate or opts.geturl or opts.gettitle or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat), + 'skip_download': (opts.skip_download or opts.simulate or opts.geturl or opts.gettitle or opts.getid or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat), 'format': opts.format, 'format_limit': opts.format_limit, 'listformats': opts.listformats,