]> code.delx.au - youtube-cgi/blobdiff - youtube.cgi
Fix to handle function call in expression instead of statement
[youtube-cgi] / youtube.cgi
index 349842fb24b03f22789edfd1e38603bb9583e87c..338fac5c2dc483f7aead7f5a0e7f33df3b3da75a 100755 (executable)
@@ -142,7 +142,8 @@ def extract_js(script):
 def find_func_name(script):
     FUNC_NAME = R"([a-zA-Z0-9$]+)"
     FUNC_PARAMS = R"(\([a-zA-Z]+\.s\))"
-    PATTERN = FUNC_NAME + FUNC_PARAMS + ";"
+    TERMINATOR = R"[,;]"
+    PATTERN = FUNC_NAME + FUNC_PARAMS + TERMINATOR
 
     match = re.search(PATTERN, script)
     func_name = match.groups()[0]
@@ -177,9 +178,12 @@ def decode_signature(js_url, signature):
                 pushState: function(){}
             },
             document: {},
-            navigator: {},
+            navigator: {
+                userAgent: ''
+            },
             signature: %(signature)s,
-            transformed_signature: null
+            transformed_signature: null,
+            g: function(){} // this is _yt_player
         };
         sandbox.window = sandbox;