mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[cleanup] Misc
Closes #5471, Closes #5312 Authored by: pukkandan, Alienmaster
This commit is contained in:
		 Robert Geislinger
					Robert Geislinger
				
			
				
					committed by
					
						 pukkandan
						pukkandan
					
				
			
			
				
	
			
			
			 pukkandan
						pukkandan
					
				
			
						parent
						
							8522226d2f
						
					
				
				
					commit
					7aaf4cd2a8
				
			| @@ -1204,6 +1204,10 @@ To summarize, the general syntax for a field is: | |||||||
| 
 | 
 | ||||||
| Additionally, you can set different output templates for the various metadata files separately from the general output template by specifying the type of file followed by the template separated by a colon `:`. The different file types supported are `subtitle`, `thumbnail`, `description`, `annotation` (deprecated), `infojson`, `link`, `pl_thumbnail`, `pl_description`, `pl_infojson`, `chapter`, `pl_video`. E.g. `-o "%(title)s.%(ext)s" -o "thumbnail:%(title)s\%(title)s.%(ext)s"`  will put the thumbnails in a folder with the same name as the video. If any of the templates is empty, that type of file will not be written. E.g. `--write-thumbnail -o "thumbnail:"` will write thumbnails only for playlists and not for video. | Additionally, you can set different output templates for the various metadata files separately from the general output template by specifying the type of file followed by the template separated by a colon `:`. The different file types supported are `subtitle`, `thumbnail`, `description`, `annotation` (deprecated), `infojson`, `link`, `pl_thumbnail`, `pl_description`, `pl_infojson`, `chapter`, `pl_video`. E.g. `-o "%(title)s.%(ext)s" -o "thumbnail:%(title)s\%(title)s.%(ext)s"`  will put the thumbnails in a folder with the same name as the video. If any of the templates is empty, that type of file will not be written. E.g. `--write-thumbnail -o "thumbnail:"` will write thumbnails only for playlists and not for video. | ||||||
| 
 | 
 | ||||||
|  | <a id="outtmpl-postprocess-note"></a> | ||||||
|  | 
 | ||||||
|  | Note: Due to post-processing (i.e. merging etc.), the actual output filename might differ. Use `--print after_move:filepath` to get the name after all post-processing is complete. | ||||||
|  | 
 | ||||||
| The available fields are: | The available fields are: | ||||||
| 
 | 
 | ||||||
|  - `id` (string): Video identifier |  - `id` (string): Video identifier | ||||||
| @@ -1304,7 +1308,7 @@ Available only when using `--download-sections` and for `chapter:` prefix when u | |||||||
| Available only when used in `--print`: | Available only when used in `--print`: | ||||||
| 
 | 
 | ||||||
|  - `urls` (string): The URLs of all requested formats, one in each line |  - `urls` (string): The URLs of all requested formats, one in each line | ||||||
|  - `filename` (string): Name of the video file. Note that the actual filename may be different due to post-processing. Use `--exec echo` to get the name after all postprocessing is complete |  - `filename` (string): Name of the video file. Note that the [actual filename may differ](#outtmpl-postprocess-note) | ||||||
|  - `formats_table` (table): The video format table as printed by `--list-formats` |  - `formats_table` (table): The video format table as printed by `--list-formats` | ||||||
|  - `thumbnails_table` (table): The thumbnail format table as printed by `--list-thumbnails` |  - `thumbnails_table` (table): The thumbnail format table as printed by `--list-thumbnails` | ||||||
|  - `subtitles_table` (table): The subtitle format table as printed by `--list-subs` |  - `subtitles_table` (table): The subtitle format table as printed by `--list-subs` | ||||||
|   | |||||||
| @@ -254,12 +254,9 @@ def expect_info_dict(self, got_dict, expected_dict): | |||||||
|                 return v.__name__ |                 return v.__name__ | ||||||
|             else: |             else: | ||||||
|                 return repr(v) |                 return repr(v) | ||||||
|         info_dict_str = '' |         info_dict_str = ''.join( | ||||||
|         if len(missing_keys) != len(expected_dict): |  | ||||||
|             info_dict_str += ''.join( |  | ||||||
|             f'    {_repr(k)}: {_repr(v)},\n' |             f'    {_repr(k)}: {_repr(v)},\n' | ||||||
|             for k, v in test_info_dict.items() if k not in missing_keys) |             for k, v in test_info_dict.items() if k not in missing_keys) | ||||||
| 
 |  | ||||||
|         if info_dict_str: |         if info_dict_str: | ||||||
|             info_dict_str += '\n' |             info_dict_str += '\n' | ||||||
|         info_dict_str += ''.join( |         info_dict_str += ''.join( | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| import sys | import sys | ||||||
| 
 | 
 | ||||||
| if __package__ is None and not hasattr(sys, 'frozen'): | if __package__ is None and not getattr(sys, 'frozen', False): | ||||||
|     # direct call of __main__.py |     # direct call of __main__.py | ||||||
|     import os.path |     import os.path | ||||||
|     path = os.path.realpath(os.path.abspath(__file__)) |     path = os.path.realpath(os.path.abspath(__file__)) | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ from ..utils import ( | |||||||
| 
 | 
 | ||||||
| class SlidesLiveIE(InfoExtractor): | class SlidesLiveIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://slideslive\.com/(?P<id>[0-9]+)' |     _VALID_URL = r'https?://slideslive\.com/(?P<id>[0-9]+)' | ||||||
|  |     _WORKING = False | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         # video_service_name = YOUTUBE |         # video_service_name = YOUTUBE | ||||||
|         'url': 'https://slideslive.com/38902413/gcc-ia16-backend', |         'url': 'https://slideslive.com/38902413/gcc-ia16-backend', | ||||||
|   | |||||||
| @@ -21,7 +21,7 @@ class TestURLIE(InfoExtractor): | |||||||
|         matching_extractors = [e for e in gen_extractor_classes() if rex.search(e.IE_NAME)] |         matching_extractors = [e for e in gen_extractor_classes() if rex.search(e.IE_NAME)] | ||||||
| 
 | 
 | ||||||
|         if len(matching_extractors) == 0: |         if len(matching_extractors) == 0: | ||||||
|             raise ExtractorError('No extractors matching {extractor_id!r} found', expected=True) |             raise ExtractorError(f'No extractors matching {extractor_id!r} found', expected=True) | ||||||
|         elif len(matching_extractors) > 1: |         elif len(matching_extractors) > 1: | ||||||
|             try:  # Check for exact match |             try:  # Check for exact match | ||||||
|                 extractor = next( |                 extractor = next( | ||||||
|   | |||||||
| @@ -137,7 +137,7 @@ class FFmpegPostProcessor(PostProcessor): | |||||||
|         path = self._paths.get(prog) |         path = self._paths.get(prog) | ||||||
|         if path in self._version_cache: |         if path in self._version_cache: | ||||||
|             return self._version_cache[path], self._features_cache.get(path, {}) |             return self._version_cache[path], self._features_cache.get(path, {}) | ||||||
|         out = _get_exe_version_output(path, ['-bsfs'], to_screen=self.write_debug) |         out = _get_exe_version_output(path, ['-bsfs']) | ||||||
|         ver = detect_exe_version(out) if out else False |         ver = detect_exe_version(out) if out else False | ||||||
|         if ver: |         if ver: | ||||||
|             regexs = [ |             regexs = [ | ||||||
|   | |||||||
| @@ -30,13 +30,13 @@ API_URL = f'https://api.github.com/repos/{REPOSITORY}/releases' | |||||||
| @functools.cache | @functools.cache | ||||||
| def _get_variant_and_executable_path(): | def _get_variant_and_executable_path(): | ||||||
|     """@returns (variant, executable_path)""" |     """@returns (variant, executable_path)""" | ||||||
|     if hasattr(sys, 'frozen'): |     if getattr(sys, 'frozen', False): | ||||||
|         path = sys.executable |         path = sys.executable | ||||||
|         if not hasattr(sys, '_MEIPASS'): |         if not hasattr(sys, '_MEIPASS'): | ||||||
|             return 'py2exe', path |             return 'py2exe', path | ||||||
|         if sys._MEIPASS == os.path.dirname(path): |         elif sys._MEIPASS == os.path.dirname(path): | ||||||
|             return f'{sys.platform}_dir', path |             return f'{sys.platform}_dir', path | ||||||
|         if sys.platform == 'darwin': |         elif sys.platform == 'darwin': | ||||||
|             machine = '_legacy' if version_tuple(platform.mac_ver()[0]) < (10, 15) else '' |             machine = '_legacy' if version_tuple(platform.mac_ver()[0]) < (10, 15) else '' | ||||||
|         else: |         else: | ||||||
|             machine = f'_{platform.machine().lower()}' |             machine = f'_{platform.machine().lower()}' | ||||||
| @@ -288,7 +288,7 @@ class Updater: | |||||||
|         # There is no sys.orig_argv in py < 3.10. Also, it can be [] when frozen |         # There is no sys.orig_argv in py < 3.10. Also, it can be [] when frozen | ||||||
|         if getattr(sys, 'orig_argv', None): |         if getattr(sys, 'orig_argv', None): | ||||||
|             return sys.orig_argv |             return sys.orig_argv | ||||||
|         elif hasattr(sys, 'frozen'): |         elif getattr(sys, 'frozen', False): | ||||||
|             return sys.argv |             return sys.argv | ||||||
| 
 | 
 | ||||||
|     def restart(self): |     def restart(self): | ||||||
|   | |||||||
| @@ -2698,9 +2698,7 @@ def check_executable(exe, args=[]): | |||||||
|     return exe |     return exe | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _get_exe_version_output(exe, args, *, to_screen=None): | def _get_exe_version_output(exe, args): | ||||||
|     if to_screen: |  | ||||||
|         to_screen(f'Checking exe version: {shell_quote([exe] + args)}') |  | ||||||
|     try: |     try: | ||||||
|         # STDIN should be redirected too. On UNIX-like systems, ffmpeg triggers |         # STDIN should be redirected too. On UNIX-like systems, ffmpeg triggers | ||||||
|         # SIGTTOU if yt-dlp is run in the background. |         # SIGTTOU if yt-dlp is run in the background. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user