From a0b19d319a6ce8b7059318fa17a34b144fde1785 Mon Sep 17 00:00:00 2001 From: pk Date: Mon, 20 Nov 2023 16:43:52 -0600 Subject: [PATCH] [core] Support `NO_COLOR` environment variable (#8385) Authored by: prettykool, Grub4K --- yt_dlp/YoutubeDL.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index 85b282bd5..32ae25aa0 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -625,13 +625,16 @@ def __init__(self, params=None, auto_init=True): 'Overwriting params from "color" with "no_color"') self.params['color'] = 'no_color' - term_allow_color = os.environ.get('TERM', '').lower() != 'dumb' + term_allow_color = os.getenv('TERM', '').lower() != 'dumb' + 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): - return term_allow_color and supports_terminal_sequences(stream) + if term_allow_color and supports_terminal_sequences(stream): + return 'no_color' if no_color else True + return False assert policy in ('always', 'never', 'no_color'), policy return {'always': True, 'never': False}.get(policy, policy)