diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-06-24 20:08:43 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-06-24 22:23:34 +0530 |
commit | 6033d9808dee0991e912c196dc51b18919167027 (patch) | |
tree | 8d5c7c0f8c7263ea273afd8aec5673bd2a09ad98 | |
parent | bd4d1ea398ab6118b5d16ff3e19562d477ff04be (diff) | |
download | hypervideo-pre-6033d9808dee0991e912c196dc51b18919167027.tar.lz hypervideo-pre-6033d9808dee0991e912c196dc51b18919167027.tar.xz hypervideo-pre-6033d9808dee0991e912c196dc51b18919167027.zip |
Fix `--flat-playlist` when entry has no `ie_key`
-rw-r--r-- | yt_dlp/YoutubeDL.py | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index ffc72ba5d..b73030c72 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -104,6 +104,7 @@ from .utils import ( ThrottledDownload, to_high_limit_path, traverse_obj, + try_get, UnavailableVideoError, url_basename, version_tuple, @@ -1176,13 +1177,17 @@ class YoutubeDL(object): return ie_result def add_default_extra_info(self, ie_result, ie, url): - self.add_extra_info(ie_result, { - 'extractor': ie.IE_NAME, - 'webpage_url': url, - 'original_url': url, - 'webpage_url_basename': url_basename(url), - 'extractor_key': ie.ie_key(), - }) + if url is not None: + self.add_extra_info(ie_result, { + 'webpage_url': url, + 'original_url': url, + 'webpage_url_basename': url_basename(url), + }) + if ie is not None: + self.add_extra_info(ie_result, { + 'extractor': ie.IE_NAME, + 'extractor_key': ie.ie_key(), + }) def process_ie_result(self, ie_result, download=True, extra_info={}): """ @@ -1201,8 +1206,8 @@ class YoutubeDL(object): or extract_flat is True): info_copy = ie_result.copy() self.add_extra_info(info_copy, extra_info) - self.add_default_extra_info( - info_copy, self.get_info_extractor(ie_result.get('ie_key')), ie_result['url']) + ie = try_get(ie_result.get('ie_key'), self.get_info_extractor) + self.add_default_extra_info(info_copy, ie, ie_result['url']) self.__forced_printings(info_copy, self.prepare_filename(info_copy), incomplete=True) return ie_result |