mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[core] Support auto-tty and no_color-tty for --color (#10453)
				
					
				
			Authored by: Grub4K
This commit is contained in:
		| @@ -452,7 +452,8 @@ class YoutubeDL: | ||||
|                        Can also just be a single color policy, | ||||
|                        in which case it applies to all outputs. | ||||
|                        Valid stream names are 'stdout' and 'stderr'. | ||||
|                        Valid color policies are one of 'always', 'auto', 'no_color' or 'never'. | ||||
|                        Valid color policies are one of 'always', 'auto', | ||||
|                        'no_color', 'never', 'auto-tty' or 'no_color-tty'. | ||||
|     geo_bypass:        Bypass geographic restriction via faking X-Forwarded-For | ||||
|                        HTTP header | ||||
|     geo_bypass_country: | ||||
| @@ -659,12 +660,15 @@ class YoutubeDL: | ||||
|             self.params['color'] = 'no_color' | ||||
| 
 | ||||
|         term_allow_color = os.getenv('TERM', '').lower() != 'dumb' | ||||
|         no_color = bool(os.getenv('NO_COLOR')) | ||||
|         base_no_color = bool(os.getenv('NO_COLOR')) | ||||
| 
 | ||||
|         def process_color_policy(stream): | ||||
|             stream_name = {sys.stdout: 'stdout', sys.stderr: 'stderr'}[stream] | ||||
|             policy = traverse_obj(self.params, ('color', (stream_name, None), {str}), get_all=False) | ||||
|             if policy in ('auto', None): | ||||
|             policy = traverse_obj(self.params, ('color', (stream_name, None), {str}, any)) or 'auto' | ||||
|             if policy in ('auto', 'auto-tty', 'no_color-tty'): | ||||
|                 no_color = base_no_color | ||||
|                 if policy.endswith('tty'): | ||||
|                     no_color = policy.startswith('no_color') | ||||
|                 if term_allow_color and supports_terminal_sequences(stream): | ||||
|                     return 'no_color' if no_color else True | ||||
|                 return False | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Simon Sawicki
					Simon Sawicki