commit: 3e92c60fcd94c37428d57153dbdd14cd0a1f9226
parent 3da17834a49fad2a97c308fdd89aa26781ef4d60
Author: pukkandan <pukkandan.ytdlp@gmail.com>
Date: Fri, 3 Mar 2023 16:48:54 +0530
[jsinterp] Handle `Date` at epoch 0
See yt-dlp/yt_dlp#6400
Diffstat:
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/test/test_youtube_signature.py b/test/test_youtube_signature.py
@@ -68,6 +68,10 @@ _SIG_TESTS = [
_NSIG_TESTS = [
(
+ 'https://www.youtube.com/s/player/7862ca1f/player_ias.vflset/en_US/base.js',
+ 'X_LCxVDjAavgE5t', 'yxJ1dM6iz5ogUg',
+ ),
+ (
'https://www.youtube.com/s/player/9216d1f7/player_ias.vflset/en_US/base.js',
'SLp9F5bwjAdhE9F-', 'gWnb9IK2DJ8Q1w',
),
diff --git a/youtube_dl/jsinterp.py b/youtube_dl/jsinterp.py
@@ -405,7 +405,7 @@ class JSInterpreter(object):
left, right = self._separate_at_paren(obj[len(klass):])
argvals = self.interpret_iter(left, local_vars, allow_recursion)
expr = konstr(*argvals)
- if not expr:
+ if expr is None:
raise self.Exception('Failed to parse {klass} {left!r:.100}'.format(**locals()), expr=expr)
expr = self._dump(expr, local_vars) + right
break