aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-03-04 19:40:10 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-03-04 19:49:36 +0530
commit4c3f8c3fb68637d80acc58f908b1511f9160bdbc (patch)
treecb1dab657a777d3c110d8b25c3f5e097ca021572
parent7265a2190c46b7312669d613898055c2b080d26e (diff)
downloadhypervideo-pre-4c3f8c3fb68637d80acc58f908b1511f9160bdbc.tar.lz
hypervideo-pre-4c3f8c3fb68637d80acc58f908b1511f9160bdbc.tar.xz
hypervideo-pre-4c3f8c3fb68637d80acc58f908b1511f9160bdbc.zip
Handle negative duration from extractor
Closes #2921
-rw-r--r--yt_dlp/YoutubeDL.py2
-rw-r--r--yt_dlp/utils.py2
2 files changed, 3 insertions, 1 deletions
diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py
index 10eebecf2..9672d0cd3 100644
--- a/yt_dlp/YoutubeDL.py
+++ b/yt_dlp/YoutubeDL.py
@@ -2392,6 +2392,8 @@ class YoutubeDL(object):
sanitize_string_field(info_dict, 'id')
sanitize_numeric_fields(info_dict)
+ if (info_dict.get('duration') or 0) <= 0 and info_dict.pop('duration', None):
+ self.report_warning('"duration" field is negative, there is an error in extractor')
if 'playlist' not in info_dict:
# It isn't part of a playlist
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index 4134acfdc..ef2c6bb24 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -2257,7 +2257,7 @@ def unsmuggle_url(smug_url, default=None):
def format_decimal_suffix(num, fmt='%d%s', *, factor=1000):
""" Formats numbers with decimal sufixes like K, M, etc """
num, factor = float_or_none(num), float(factor)
- if num is None:
+ if num is None or num < 0:
return None
exponent = 0 if num == 0 else int(math.log(num, factor))
suffix = ['', *'kMGTPEZY'][exponent]