From 58b1f00d19d608470540b111f3825eefafbdae97 Mon Sep 17 00:00:00 2001 From: Philipp Hagemeister Date: Sat, 10 Jan 2015 21:02:27 +0100 Subject: [PATCH] [YoutubeDL] Add new --call-home option for debugging --- youtube_dl/YoutubeDL.py | 14 ++++++++++++++ youtube_dl/__init__.py | 1 + youtube_dl/options.py | 4 ++++ 3 files changed, 19 insertions(+) diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index fd2c0e0440..84cea472c9 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -58,6 +58,7 @@ takewhile_inclusive, UnavailableVideoError, url_basename, + version_tuple, write_json_file, write_string, YoutubeDLHandler, @@ -212,6 +213,8 @@ class YoutubeDL(object): - "detect_or_warn": check whether we can do anything about it, warn otherwise source_address: (Experimental) Client-side IP address to bind to. + call_home: (Experimental) Boolean, true iff we are allowed to + contact the youtube-dl servers for debugging. The following parameters are not used by YoutubeDL itself, they are used by @@ -1464,6 +1467,17 @@ def print_debug_header(self): proxy_map.update(handler.proxies) self._write_string('[debug] Proxy map: ' + compat_str(proxy_map) + '\n') + if self.params.get('call_home', False): + ipaddr = self.urlopen('https://yt-dl.org/ip').read().decode('utf-8') + self._write_string('[debug] Public IP address: %s\n' % ipaddr) + latest_version = self.urlopen( + 'https://yt-dl.org/latest/version').read().decode('utf-8') + if version_tuple(latest_version) > version_tuple(__version__): + self.report_warning( + 'You are using an outdated version (newest version: %s)! ' + 'See https://yt-dl.org/update if you need help updating.' % + latest_version) + def _setup_opener(self): timeout_val = self.params.get('socket_timeout') self._socket_timeout = 600 if timeout_val is None else float(timeout_val) diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index d74a304b7b..ddf6260d1e 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -328,6 +328,7 @@ def _real_main(argv=None): 'postprocessors': postprocessors, 'fixup': opts.fixup, 'source_address': opts.source_address, + 'call_home': opts.call_home, } with YoutubeDL(ydl_opts) as ydl: diff --git a/youtube_dl/options.py b/youtube_dl/options.py index e25466c39c..0176bae75b 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -505,6 +505,10 @@ def _hide_login_info(opts): '--print-traffic', dest='debug_printtraffic', action='store_true', default=False, help='Display sent and read HTTP traffic') + verbosity.add_option( + '-C', '--call-home', + dest='call_home', action='store_true', default=False, + help='Contact the youtube-dl server for debugging. (Experimental)') filesystem = optparse.OptionGroup(parser, 'Filesystem Options') filesystem.add_option(