From 1ea241292770c6027b951aa045e00eadd140b9f5 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Fri, 12 Feb 2021 10:10:31 +0530 Subject: [PATCH] Minor bugfixes * `__real_download` should be false when ffmpeg unavailable and no download * Mistakes in #70 * `allow_playlist_files` was not correctly pass through --- youtube_dlc/YoutubeDL.py | 8 +++++--- youtube_dlc/__init__.py | 1 + youtube_dlc/extractor/brightcove.py | 2 +- youtube_dlc/extractor/rtbf.py | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/youtube_dlc/YoutubeDL.py b/youtube_dlc/YoutubeDL.py index 922cf269b..7c370efba 100644 --- a/youtube_dlc/YoutubeDL.py +++ b/youtube_dlc/YoutubeDL.py @@ -2340,6 +2340,7 @@ def correct_ext(filename): full_filename = correct_ext(full_filename) temp_filename = correct_ext(temp_filename) dl_filename = existing_file(full_filename, temp_filename) + info_dict['__real_download'] = False if dl_filename is None: for f in requested_formats: new_info = dict(info_dict) @@ -2351,12 +2352,13 @@ def correct_ext(filename): return downloaded.append(fname) partial_success, real_download = dl(fname, new_info) + info_dict['__real_download'] = info_dict['__real_download'] or real_download success = success and partial_success if merger.available and not self.params.get('allow_unplayable_formats'): info_dict['__postprocessors'].append(merger) - info_dict['__files_to_merge'] = downloaded - # Even if there were no downloads, it is being merged only now - info_dict['__real_download'] = True + info_dict['__files_to_merge'] = downloaded + # Even if there were no downloads, it is being merged only now + info_dict['__real_download'] = True else: # Just a single file dl_filename = existing_file(full_filename, temp_filename) diff --git a/youtube_dlc/__init__.py b/youtube_dlc/__init__.py index 7b2e63fd3..c681c8edb 100644 --- a/youtube_dlc/__init__.py +++ b/youtube_dlc/__init__.py @@ -463,6 +463,7 @@ def report_conflict(arg1, arg2): 'writedescription': opts.writedescription, 'writeannotations': opts.writeannotations, 'writeinfojson': opts.writeinfojson or opts.getcomments, + 'allow_playlist_files': opts.allow_playlist_files, 'getcomments': opts.getcomments, 'writethumbnail': opts.writethumbnail, 'write_all_thumbnails': opts.write_all_thumbnails, diff --git a/youtube_dlc/extractor/brightcove.py b/youtube_dlc/extractor/brightcove.py index 901bfa585..091992ebd 100644 --- a/youtube_dlc/extractor/brightcove.py +++ b/youtube_dlc/extractor/brightcove.py @@ -482,7 +482,7 @@ def _parse_brightcove_metadata(self, json_data, video_id, headers={}): if not self._downloader.params.get('allow_unplayable_formats') and (container == 'WVM' or source.get('key_systems')): num_drm_sources += 1 continue - elif ext == 'ism' and self._downloader.params.get('allow_unplayable_formats'): + elif ext == 'ism' and not self._downloader.params.get('allow_unplayable_formats'): continue elif ext == 'm3u8' or container == 'M2TS': if not src: diff --git a/youtube_dlc/extractor/rtbf.py b/youtube_dlc/extractor/rtbf.py index 3c6c656ea..2bb0acd5a 100644 --- a/youtube_dlc/extractor/rtbf.py +++ b/youtube_dlc/extractor/rtbf.py @@ -125,7 +125,7 @@ def _real_extract(self, url): }) mpd_url = data.get('urlDash') - if (not self._downloader.params.get('allow_unplayable_formats') and not data.get('drm')) and mpd_url: + if mpd_url and (self._downloader.params.get('allow_unplayable_formats') or not data.get('drm')): formats.extend(self._extract_mpd_formats( mpd_url, media_id, mpd_id='dash', fatal=False))