mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[YoutubeDL] Do not require default output template to be set
This commit is contained in:
		| @@ -31,6 +31,7 @@ from .utils import ( | |||||||
|     ContentTooShortError, |     ContentTooShortError, | ||||||
|     date_from_str, |     date_from_str, | ||||||
|     DateRange, |     DateRange, | ||||||
|  |     DEFAULT_OUTTMPL, | ||||||
|     determine_ext, |     determine_ext, | ||||||
|     DownloadError, |     DownloadError, | ||||||
|     encodeFilename, |     encodeFilename, | ||||||
| @@ -440,7 +441,8 @@ class YoutubeDL(object): | |||||||
|                                  if v is not None) |                                  if v is not None) | ||||||
|             template_dict = collections.defaultdict(lambda: 'NA', template_dict) |             template_dict = collections.defaultdict(lambda: 'NA', template_dict) | ||||||
|  |  | ||||||
|             tmpl = os.path.expanduser(self.params['outtmpl']) |             outtmpl = self.params.get('outtmpl', DEFAULT_OUTTMPL) | ||||||
|  |             tmpl = os.path.expanduser(outtmpl) | ||||||
|             filename = tmpl % template_dict |             filename = tmpl % template_dict | ||||||
|             return filename |             return filename | ||||||
|         except ValueError as err: |         except ValueError as err: | ||||||
| @@ -1025,10 +1027,11 @@ class YoutubeDL(object): | |||||||
|  |  | ||||||
|     def download(self, url_list): |     def download(self, url_list): | ||||||
|         """Download a given list of URLs.""" |         """Download a given list of URLs.""" | ||||||
|  |         outtmpl = self.params.get('outtmpl', DEFAULT_OUTTMPL) | ||||||
|         if (len(url_list) > 1 and |         if (len(url_list) > 1 and | ||||||
|                 '%' not in self.params['outtmpl'] |                 '%' not in outtmpl | ||||||
|                 and self.params.get('max_downloads') != 1): |                 and self.params.get('max_downloads') != 1): | ||||||
|             raise SameFileError(self.params['outtmpl']) |             raise SameFileError(outtmpl) | ||||||
|  |  | ||||||
|         for url in url_list: |         for url in url_list: | ||||||
|             try: |             try: | ||||||
|   | |||||||
| @@ -72,6 +72,7 @@ from .utils import ( | |||||||
|     compat_getpass, |     compat_getpass, | ||||||
|     compat_print, |     compat_print, | ||||||
|     DateRange, |     DateRange, | ||||||
|  |     DEFAULT_OUTTMPL, | ||||||
|     decodeOption, |     decodeOption, | ||||||
|     get_term_width, |     get_term_width, | ||||||
|     DownloadError, |     DownloadError, | ||||||
| @@ -705,7 +706,7 @@ def _real_main(argv=None): | |||||||
|             or (opts.usetitle and u'%(title)s-%(id)s.%(ext)s') |             or (opts.usetitle and u'%(title)s-%(id)s.%(ext)s') | ||||||
|             or (opts.useid and u'%(id)s.%(ext)s') |             or (opts.useid and u'%(id)s.%(ext)s') | ||||||
|             or (opts.autonumber and u'%(autonumber)s-%(id)s.%(ext)s') |             or (opts.autonumber and u'%(autonumber)s-%(id)s.%(ext)s') | ||||||
|             or u'%(title)s-%(id)s.%(ext)s') |             or DEFAULT_OUTTMPL) | ||||||
|     if not os.path.splitext(outtmpl)[1] and opts.extractaudio: |     if not os.path.splitext(outtmpl)[1] and opts.extractaudio: | ||||||
|         parser.error(u'Cannot download a video and extract audio into the same' |         parser.error(u'Cannot download a video and extract audio into the same' | ||||||
|                      u' file! Use "{0}.%(ext)s" instead of "{0}" as the output' |                      u' file! Use "{0}.%(ext)s" instead of "{0}" as the output' | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ class VineIE(InfoExtractor): | |||||||
|  |  | ||||||
|         data = json.loads(self._html_search_regex( |         data = json.loads(self._html_search_regex( | ||||||
|             r'window\.POST_DATA = { %s: ({.+?}) }' % video_id, webpage, 'vine data')) |             r'window\.POST_DATA = { %s: ({.+?}) }' % video_id, webpage, 'vine data')) | ||||||
|  |         print(json.dumps(data, indent=2)) | ||||||
|         formats = [ |         formats = [ | ||||||
|             { |             { | ||||||
|                 'url': data['videoLowURL'], |                 'url': data['videoLowURL'], | ||||||
| @@ -57,4 +57,4 @@ class VineIE(InfoExtractor): | |||||||
|             'comment_count': data['comments']['count'], |             'comment_count': data['comments']['count'], | ||||||
|             'repost_count': data['reposts']['count'], |             'repost_count': data['reposts']['count'], | ||||||
|             'formats': formats, |             'formats': formats, | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -1423,3 +1423,5 @@ def qualities(quality_ids): | |||||||
|             return -1 |             return -1 | ||||||
|     return q |     return q | ||||||
|  |  | ||||||
|  |  | ||||||
|  | DEFAULT_OUTTMPL = '%(title)s-%(id)s.%(ext)s' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister