mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	
							
								
								
									
										44
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								README.md
									
									
									
									
									
								
							| @@ -725,7 +725,7 @@ You can also fork the project on GitHub and run your fork's [build workflow](.gi | ||||
|                                     screen, optionally prefixed with when to | ||||
|                                     print it, separated by a ":". Supported | ||||
|                                     values of "WHEN" are the same as that of | ||||
|                                     --use-postprocessor, and "video" (default). | ||||
|                                     --use-postprocessor (default: video). | ||||
|                                     Implies --quiet. Implies --simulate unless | ||||
|                                     --no-simulate or later stages of WHEN are | ||||
|                                     used. This option can be used multiple times | ||||
| @@ -979,18 +979,18 @@ You can also fork the project on GitHub and run your fork's [build workflow](.gi | ||||
|     --ffmpeg-location PATH          Location of the ffmpeg binary; either the | ||||
|                                     path to the binary or its containing directory | ||||
|     --exec [WHEN:]CMD               Execute a command, optionally prefixed with | ||||
|                                     when to execute it (after_move if | ||||
|                                     unspecified), separated by a ":". Supported | ||||
|                                     values of "WHEN" are the same as that of | ||||
|                                     --use-postprocessor. Same syntax as the | ||||
|                                     output template can be used to pass any | ||||
|                                     field as arguments to the command. After | ||||
|                                     download, an additional field "filepath" | ||||
|                                     that contains the final path of the | ||||
|                                     downloaded file is also available, and if no | ||||
|                                     fields are passed, %(filepath)q is appended | ||||
|                                     to the end of the command. This option can | ||||
|                                     be used multiple times | ||||
|                                     when to execute it, separated by a ":". | ||||
|                                     Supported values of "WHEN" are the same as | ||||
|                                     that of --use-postprocessor (default: | ||||
|                                     after_move). Same syntax as the output | ||||
|                                     template can be used to pass any field as | ||||
|                                     arguments to the command. After download, an | ||||
|                                     additional field "filepath" that contains | ||||
|                                     the final path of the downloaded file is | ||||
|                                     also available, and if no fields are passed, | ||||
|                                     %(filepath)q is appended to the end of the | ||||
|                                     command. This option can be used multiple | ||||
|                                     times | ||||
|     --no-exec                       Remove any previously defined --exec | ||||
|     --convert-subs FORMAT           Convert the subtitles to another format | ||||
|                                     (currently supported: ass, lrc, srt, vtt) | ||||
| @@ -1028,14 +1028,16 @@ You can also fork the project on GitHub and run your fork's [build workflow](.gi | ||||
|                                     postprocessor is invoked. It can be one of | ||||
|                                     "pre_process" (after video extraction), | ||||
|                                     "after_filter" (after video passes filter), | ||||
|                                     "before_dl" (before each video download), | ||||
|                                     "post_process" (after each video download; | ||||
|                                     default), "after_move" (after moving video | ||||
|                                     file to it's final locations), "after_video" | ||||
|                                     (after downloading and processing all | ||||
|                                     formats of a video), or "playlist" (at end | ||||
|                                     of playlist). This option can be used | ||||
|                                     multiple times to add different postprocessors | ||||
|                                     "video" (after --format; before | ||||
|                                     --print/--output), "before_dl" (before each | ||||
|                                     video download), "post_process" (after each | ||||
|                                     video download; default), "after_move" | ||||
|                                     (after moving video file to it's final | ||||
|                                     locations), "after_video" (after downloading | ||||
|                                     and processing all formats of a video), or | ||||
|                                     "playlist" (at end of playlist). This option | ||||
|                                     can be used multiple times to add different | ||||
|                                     postprocessors | ||||
| 
 | ||||
| ## SponsorBlock Options: | ||||
| Make chapter entries for, or remove various segments (sponsor, | ||||
|   | ||||
| @@ -2977,6 +2977,16 @@ class YoutubeDL: | ||||
| 
 | ||||
|         # Does nothing under normal operation - for backward compatibility of process_info | ||||
|         self.post_extract(info_dict) | ||||
| 
 | ||||
|         def replace_info_dict(new_info): | ||||
|             nonlocal info_dict | ||||
|             if new_info == info_dict: | ||||
|                 return | ||||
|             info_dict.clear() | ||||
|             info_dict.update(new_info) | ||||
| 
 | ||||
|         new_info, _ = self.pre_process(info_dict, 'video') | ||||
|         replace_info_dict(new_info) | ||||
|         self._num_downloads += 1 | ||||
| 
 | ||||
|         # info_dict['_filename'] needs to be set for backward compatibility | ||||
| @@ -3090,13 +3100,6 @@ class YoutubeDL: | ||||
|                for link_type, should_write in write_links.items()): | ||||
|             return | ||||
| 
 | ||||
|         def replace_info_dict(new_info): | ||||
|             nonlocal info_dict | ||||
|             if new_info == info_dict: | ||||
|                 return | ||||
|             info_dict.clear() | ||||
|             info_dict.update(new_info) | ||||
| 
 | ||||
|         new_info, files_to_move = self.pre_process(info_dict, 'before_dl', files_to_move) | ||||
|         replace_info_dict(new_info) | ||||
| 
 | ||||
|   | ||||
| @@ -277,6 +277,20 @@ def create_parser(): | ||||
|             out_dict[key] = out_dict.get(key, []) + [val] if append else val | ||||
|         setattr(parser.values, option.dest, out_dict) | ||||
| 
 | ||||
|     def when_prefix(default): | ||||
|         return { | ||||
|             'default': {}, | ||||
|             'type': 'str', | ||||
|             'action': 'callback', | ||||
|             'callback': _dict_from_options_callback, | ||||
|             'callback_kwargs': { | ||||
|                 'allowed_keys': '|'.join(map(re.escape, POSTPROCESS_WHEN)), | ||||
|                 'default_key': default, | ||||
|                 'multiple_keys': False, | ||||
|                 'append': True, | ||||
|             }, | ||||
|         } | ||||
| 
 | ||||
|     parser = _YoutubeDLOptionParser() | ||||
|     alias_group = optparse.OptionGroup(parser, 'Aliases') | ||||
|     Formatter = string.Formatter() | ||||
| @@ -1086,28 +1100,16 @@ def create_parser(): | ||||
|         help='Do not download the video but write all related files (Alias: --no-download)') | ||||
|     verbosity.add_option( | ||||
|         '-O', '--print', | ||||
|         metavar='[WHEN:]TEMPLATE', dest='forceprint', default={}, type='str', | ||||
|         action='callback', callback=_dict_from_options_callback, | ||||
|         callback_kwargs={ | ||||
|             'allowed_keys': 'video|' + '|'.join(map(re.escape, POSTPROCESS_WHEN)), | ||||
|             'default_key': 'video', | ||||
|             'multiple_keys': False, | ||||
|             'append': True, | ||||
|         }, help=( | ||||
|         metavar='[WHEN:]TEMPLATE', dest='forceprint', **when_prefix('video'), | ||||
|         help=( | ||||
|             'Field name or output template to print to screen, optionally prefixed with when to print it, separated by a ":". ' | ||||
|             'Supported values of "WHEN" are the same as that of --use-postprocessor, and "video" (default). ' | ||||
|             'Supported values of "WHEN" are the same as that of --use-postprocessor (default: video). ' | ||||
|             'Implies --quiet. Implies --simulate unless --no-simulate or later stages of WHEN are used. ' | ||||
|             'This option can be used multiple times')) | ||||
|     verbosity.add_option( | ||||
|         '--print-to-file', | ||||
|         metavar='[WHEN:]TEMPLATE FILE', dest='print_to_file', default={}, type='str', nargs=2, | ||||
|         action='callback', callback=_dict_from_options_callback, | ||||
|         callback_kwargs={ | ||||
|             'allowed_keys': 'video|' + '|'.join(map(re.escape, POSTPROCESS_WHEN)), | ||||
|             'default_key': 'video', | ||||
|             'multiple_keys': False, | ||||
|             'append': True, | ||||
|         }, help=( | ||||
|         metavar='[WHEN:]TEMPLATE FILE', dest='print_to_file', nargs=2, **when_prefix('video'), | ||||
|         help=( | ||||
|             'Append given template to the file. The values of WHEN and TEMPLATE are same as that of --print. ' | ||||
|             'FILE uses the same syntax as the output template. This option can be used multiple times')) | ||||
|     verbosity.add_option( | ||||
| @@ -1629,16 +1631,10 @@ def create_parser(): | ||||
|         help='Location of the ffmpeg binary; either the path to the binary or its containing directory') | ||||
|     postproc.add_option( | ||||
|         '--exec', | ||||
|         metavar='[WHEN:]CMD', dest='exec_cmd', default={}, type='str', | ||||
|         action='callback', callback=_dict_from_options_callback, | ||||
|         callback_kwargs={ | ||||
|             'allowed_keys': '|'.join(map(re.escape, POSTPROCESS_WHEN)), | ||||
|             'default_key': 'after_move', | ||||
|             'multiple_keys': False, | ||||
|             'append': True, | ||||
|         }, help=( | ||||
|             'Execute a command, optionally prefixed with when to execute it (after_move if unspecified), separated by a ":". ' | ||||
|             'Supported values of "WHEN" are the same as that of --use-postprocessor. ' | ||||
|         metavar='[WHEN:]CMD', dest='exec_cmd', **when_prefix('after_move'), | ||||
|         help=( | ||||
|             'Execute a command, optionally prefixed with when to execute it, separated by a ":". ' | ||||
|             'Supported values of "WHEN" are the same as that of --use-postprocessor (default: after_move). ' | ||||
|             'Same syntax as the output template can be used to pass any field as arguments to the command. ' | ||||
|             'After download, an additional field "filepath" that contains the final path of the downloaded file ' | ||||
|             'is also available, and if no fields are passed, %(filepath)q is appended to the end of the command. ' | ||||
| @@ -1714,7 +1710,8 @@ def create_parser(): | ||||
|             'ARGS are a semicolon ";" delimited list of NAME=VALUE. ' | ||||
|             'The "when" argument determines when the postprocessor is invoked. ' | ||||
|             'It can be one of "pre_process" (after video extraction), "after_filter" (after video passes filter), ' | ||||
|             '"before_dl" (before each video download), "post_process" (after each video download; default), ' | ||||
|             '"video" (after --format; before --print/--output), "before_dl" (before each video download), ' | ||||
|             '"post_process" (after each video download; default), ' | ||||
|             '"after_move" (after moving video file to it\'s final locations), ' | ||||
|             '"after_video" (after downloading and processing all formats of a video), ' | ||||
|             'or "playlist" (at end of playlist). ' | ||||
|   | ||||
| @@ -3395,7 +3395,7 @@ def qualities(quality_ids): | ||||
|     return q | ||||
| 
 | ||||
| 
 | ||||
| POSTPROCESS_WHEN = ('pre_process', 'after_filter', 'before_dl', 'post_process', 'after_move', 'after_video', 'playlist') | ||||
| POSTPROCESS_WHEN = ('pre_process', 'after_filter', 'video', 'before_dl', 'post_process', 'after_move', 'after_video', 'playlist') | ||||
| 
 | ||||
| 
 | ||||
| DEFAULT_OUTTMPL = { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan