diff options
author | dirkf <fieldhouse@gmx.net> | 2022-08-10 15:37:59 +0100 |
---|---|---|
committer | dirkf <fieldhouse@gmx.net> | 2022-08-10 15:37:59 +0100 |
commit | e6a836d54ca1d3cd02f3ee45ef707a46f23e8291 (patch) | |
tree | 6ea2cee5bfe03002cbf4c71c3a5c8b25211d4b4d | |
parent | deee741fb145360576ceae9d69b1b43db082c404 (diff) | |
download | youtube-dl-e6a836d54ca1d3cd02f3ee45ef707a46f23e8291.tar.gz youtube-dl-e6a836d54ca1d3cd02f3ee45ef707a46f23e8291.tar.xz |
[core] Make `--max-downloads ...` stop immediately on reaching the limit
Based on and closes #26638.
-rwxr-xr-x | youtube_dl/YoutubeDL.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 3895b408f..e77b8d50c 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -1779,10 +1779,9 @@ class YoutubeDL(object): assert info_dict.get('_type', 'video') == 'video' - max_downloads = self.params.get('max_downloads') - if max_downloads is not None: - if self._num_downloads >= int(max_downloads): - raise MaxDownloadsReached() + max_downloads = int_or_none(self.params.get('max_downloads')) or float('inf') + if self._num_downloads >= max_downloads: + raise MaxDownloadsReached() # TODO: backward compatibility, to be removed info_dict['fulltitle'] = info_dict['title'] @@ -2062,6 +2061,9 @@ class YoutubeDL(object): self.report_error('postprocessing: %s' % str(err)) return self.record_download_archive(info_dict) + # avoid possible nugatory search for further items (PR #26638) + if self._num_downloads >= max_downloads: + raise MaxDownloadsReached() def download(self, url_list): """Download a given list of URLs.""" |