From 3fe75fdc803d50820ddf643dc5184c01162451c4 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Fri, 29 Apr 2022 21:32:31 +0530 Subject: [PATCH] [cleanup] Misc fixes (see desc) * Do not warn when fixup is skipped for existing file * [fragment] Fix `--skip-unavailable-fragments` for HTTP Errors * [utils] write_string: Fix bug in 59f943cd5097e9bdbc3cb3e6b5675e43d369341a * [utils] parse_codecs: Subtitle codec is generally referred to as `scodec`. https://github.com/yt-dlp/yt-dlp/pull/2174#discussion_r790156048 * [docs] Remove note about permissions. Closes #3597 --- README.md | 4 +--- yt_dlp/YoutubeDL.py | 6 +++--- yt_dlp/downloader/fragment.py | 2 +- yt_dlp/extractor/common.py | 2 +- yt_dlp/options.py | 2 +- yt_dlp/utils.py | 12 ++++++------ 6 files changed, 13 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index dc1fad5b3..ed87a3273 100644 --- a/README.md +++ b/README.md @@ -320,9 +320,7 @@ You can also fork the project on github and run your fork's [build workflow](.gi ## General Options: -h, --help Print this help text and exit --version Print program version and exit - -U, --update Update this program to latest version. Make - sure that you have sufficient permissions - (run with sudo if needed) + -U, --update Update this program to latest version -i, --ignore-errors Ignore download and postprocessing errors. The download will be considered successful even if the postprocessing fails diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index cc36e2c9c..50342c2ca 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -3151,16 +3151,16 @@ class YoutubeDL: if fixup_policy in ('ignore', 'never'): return elif fixup_policy == 'warn': - do_fixup = False + do_fixup = 'warn' elif fixup_policy != 'force': assert fixup_policy in ('detect_or_warn', None) if not info_dict.get('__real_download'): do_fixup = False def ffmpeg_fixup(cndn, msg, cls): - if not cndn: + if not (do_fixup and cndn): return - if not do_fixup: + elif do_fixup == 'warn': self.report_warning(f'{vid}: {msg}') return pp = cls(self) diff --git a/yt_dlp/downloader/fragment.py b/yt_dlp/downloader/fragment.py index 451e3cc2f..4655f067f 100644 --- a/yt_dlp/downloader/fragment.py +++ b/yt_dlp/downloader/fragment.py @@ -123,7 +123,7 @@ class FragmentFD(FileDownloader): 'request_data': request_data, 'ctx_id': ctx.get('ctx_id'), } - success = ctx['dl'].download(fragment_filename, fragment_info_dict) + success, _ = ctx['dl'].download(fragment_filename, fragment_info_dict) if not success: return False if fragment_info_dict.get('filetime'): diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index 441d8a136..97cd524bc 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -2808,7 +2808,7 @@ class InfoExtractor: content_type = 'video' elif codecs['acodec'] != 'none': content_type = 'audio' - elif codecs.get('tcodec', 'none') != 'none': + elif codecs.get('scodec', 'none') != 'none': content_type = 'text' elif mimetype2ext(mime_type) in ('tt', 'dfxp', 'ttml', 'xml', 'json'): content_type = 'text' diff --git a/yt_dlp/options.py b/yt_dlp/options.py index c03f69319..944147871 100644 --- a/yt_dlp/options.py +++ b/yt_dlp/options.py @@ -236,7 +236,7 @@ def create_parser(): general.add_option( '-U', '--update', action='store_true', dest='update_self', - help='Update this program to latest version. Make sure that you have sufficient permissions (run with sudo if needed)') + help='Update this program to latest version') general.add_option( '-i', '--ignore-errors', action='store_true', dest='ignoreerrors', diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py index fc9eb253b..0b28b0926 100644 --- a/yt_dlp/utils.py +++ b/yt_dlp/utils.py @@ -1859,7 +1859,7 @@ def write_string(s, out=None, encoding=None): from .compat import WINDOWS_VT_MODE # Must be imported locally if WINDOWS_VT_MODE: - s = s.replace('\n', ' \n') + s = re.sub(r'([\r\n]+)', r' \1', s) if 'b' in getattr(out, 'mode', ''): byt = s.encode(encoding or preferredencoding(), 'ignore') @@ -3177,7 +3177,7 @@ def parse_codecs(codecs_str): return {} split_codecs = list(filter(None, map( str.strip, codecs_str.strip().strip(',').split(',')))) - vcodec, acodec, tcodec, hdr = None, None, None, None + vcodec, acodec, scodec, hdr = None, None, None, None for full_codec in split_codecs: parts = full_codec.split('.') codec = parts[0].replace('0', '') @@ -3195,16 +3195,16 @@ def parse_codecs(codecs_str): if not acodec: acodec = full_codec elif codec in ('stpp', 'wvtt',): - if not tcodec: - tcodec = full_codec + if not scodec: + scodec = full_codec else: write_string(f'WARNING: Unknown codec {full_codec}\n') - if vcodec or acodec or tcodec: + if vcodec or acodec or scodec: return { 'vcodec': vcodec or 'none', 'acodec': acodec or 'none', 'dynamic_range': hdr, - **({'tcodec': tcodec} if tcodec is not None else {}), + **({'scodec': scodec} if scodec is not None else {}), } elif len(split_codecs) == 2: return {