diff options
| -rw-r--r-- | youtube_dl/__init__.py | 4 | ||||
| -rw-r--r-- | youtube_dl/extractor/generic.py | 9 | 
2 files changed, 7 insertions, 6 deletions
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 6ff0be00f..a3a8013fb 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -258,7 +258,7 @@ def parseOpts(overrideArguments=None):      general.add_option(          '--default-search',          dest='default_search', metavar='PREFIX', -        help='Use this prefix for unqualified URLs. For example "gvsearch2:" downloads two videos from google videos for  youtube-dl "large apple". Use the value "auto" to let youtube-dl guess. The default value "error" just throws an error.') +        help='Use this prefix for unqualified URLs. For example "gvsearch2:" downloads two videos from google videos for  youtube-dl "large apple". Use the value "auto" to let youtube-dl guess ("auto_warning" to emit a warning when guessing). "error" just throws an error. The default value "fixup_error" repairs broken URLs, but emits an error if this is not possible instead of searching.')      general.add_option(          '--ignore-config',          action='store_true', @@ -709,7 +709,7 @@ def _real_main(argv=None):          date = DateRange.day(opts.date)      else:          date = DateRange(opts.dateafter, opts.datebefore) -    if opts.default_search not in ('auto', 'auto_warning', None) and ':' not in opts.default_search: +    if opts.default_search not in ('auto', 'auto_warning', 'error', 'fixup_error', None) and ':' not in opts.default_search:          parser.error(u'--default-search invalid; did you forget a colon (:) at the end?')      # Do not download videos when there are audio-only formats diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 9db27f9aa..bcb076594 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -383,13 +383,13 @@ class GenericIE(InfoExtractor):          if not parsed_url.scheme:              default_search = self._downloader.params.get('default_search')              if default_search is None: -                default_search = 'error' +                default_search = 'fixup_error' -            if default_search in ('auto', 'auto_warning'): +            if default_search in ('auto', 'auto_warning', 'fixup_error'):                  if '/' in url:                      self._downloader.report_warning('The url doesn\'t specify the protocol, trying with http')                      return self.url_result('http://' + url) -                else: +                elif default_search != 'fixup_error':                      if default_search == 'auto_warning':                          if re.match(r'^(?:url|URL)$', url):                              raise ExtractorError( @@ -399,7 +399,8 @@ class GenericIE(InfoExtractor):                              self._downloader.report_warning(                                  'Falling back to youtube search for  %s . Set --default-search "auto" to suppress this warning.' % url)                      return self.url_result('ytsearch:' + url) -            elif default_search == 'error': + +            if default_search in ('error', 'fixup_error'):                  raise ExtractorError(                      ('%r is not a valid URL. '                       'Set --default-search "ytsearch" (or run  youtube-dl "ytsearch:%s" ) to search YouTube'  | 
