mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	Add new --default-search option (#2193)
This commit is contained in:
		| @@ -152,6 +152,8 @@ class YoutubeDL(object): | ||||
|                        support, using fridibi | ||||
|     debug_printtraffic:Print out sent and received HTTP traffic | ||||
|     include_ads:       Download ads as well | ||||
|     default_search:    Prepend this string if an input url is not valid. | ||||
|                        'auto' for elaborate guessing | ||||
|  | ||||
|     The following parameters are not used by YoutubeDL itself, they are used by | ||||
|     the FileDownloader: | ||||
|   | ||||
| @@ -199,7 +199,9 @@ def parseOpts(overrideArguments=None): | ||||
|     general.add_option( | ||||
|         '--bidi-workaround', dest='bidi_workaround', action='store_true', | ||||
|         help=u'Work around terminals that lack bidirectional text support. Requires bidiv or fribidi executable in PATH') | ||||
|  | ||||
|     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". By default (with value "auto") youtube-dl guesses.') | ||||
|  | ||||
|     selection.add_option( | ||||
|         '--playlist-start', | ||||
| @@ -619,6 +621,8 @@ def _real_main(argv=None): | ||||
|         date = DateRange.day(opts.date) | ||||
|     else: | ||||
|         date = DateRange(opts.dateafter, opts.datebefore) | ||||
|     if opts.default_search not in ('auto', None) and ':' not in opts.default_search: | ||||
|         parser.error(u'--default-search invalid; did you forget a colon (:) at the end?') | ||||
|  | ||||
|     # --all-sub automatically sets --write-sub if --write-auto-sub is not given | ||||
|     # this was the old behaviour if only --all-sub was given. | ||||
| @@ -720,6 +724,7 @@ def _real_main(argv=None): | ||||
|         'debug_printtraffic': opts.debug_printtraffic, | ||||
|         'prefer_ffmpeg': opts.prefer_ffmpeg, | ||||
|         'include_ads': opts.include_ads, | ||||
|         'default_search': opts.default_search, | ||||
|     } | ||||
|  | ||||
|     with YoutubeDL(ydl_opts) as ydl: | ||||
|   | ||||
| @@ -162,8 +162,19 @@ class GenericIE(InfoExtractor): | ||||
|     def _real_extract(self, url): | ||||
|         parsed_url = compat_urlparse.urlparse(url) | ||||
|         if not parsed_url.scheme: | ||||
|             self._downloader.report_warning('The url doesn\'t specify the protocol, trying with http') | ||||
|             return self.url_result('http://' + url) | ||||
|             default_search = self._downloader.params.get('default_search') | ||||
|             if default_search is None: | ||||
|                 default_search = 'auto' | ||||
|  | ||||
|             if default_search == 'auto': | ||||
|                 if '/' in url: | ||||
|                     self._downloader.report_warning('The url doesn\'t specify the protocol, trying with http') | ||||
|                     return self.url_result('http://' + url) | ||||
|                 else: | ||||
|                     return self.url_result('ytsearch:' + url) | ||||
|             else: | ||||
|                 assert ':' in default_search | ||||
|                 return self.url_result(default_search + url) | ||||
|         video_id = os.path.splitext(url.split('/')[-1])[0] | ||||
|  | ||||
|         self.to_screen('%s: Requesting header' % video_id) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister