]> jfr.im git - yt-dlp.git/commitdiff
[jsinterp] Handle `Date` at epoch 0
authorpukkandan <redacted>
Fri, 3 Mar 2023 11:18:54 +0000 (16:48 +0530)
committerpukkandan <redacted>
Fri, 3 Mar 2023 11:25:06 +0000 (16:55 +0530)
Closes #6400

test/test_youtube_signature.py
yt_dlp/jsinterp.py

index 3203538bb8517e8faa33fb13b6dbebc7d49aac2e..336e80291f3acc19ed33932522e20cdb2e902bd8 100644 (file)
 ]
 
 _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',
index c2d056aa19d8d4c09f08b45aeead2c1f0820e386..31ab204d75300deb983b335d6ccf11a76381a026 100644 (file)
@@ -355,11 +355,11 @@ def interpret_statement(self, stmt, local_vars, allow_recursion=100):
             obj = expr[4:]
             if obj.startswith('Date('):
                 left, right = self._separate_at_paren(obj[4:])
-                expr = unified_timestamp(
+                date = unified_timestamp(
                     self.interpret_expression(left, local_vars, allow_recursion), False)
-                if not expr:
+                if date is None:
                     raise self.Exception(f'Failed to parse date {left!r}', expr)
-                expr = self._dump(int(expr * 1000), local_vars) + right
+                expr = self._dump(int(date * 1000), local_vars) + right
             else:
                 raise self.Exception(f'Unsupported object {obj}', expr)