|
|
|
@ -2150,7 +2150,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
|
|
def _extract_n_function_name(self, jscode, player_url=None):
|
|
|
|
|
varname, global_list = self._interpret_player_js_global_var(jscode, player_url)
|
|
|
|
|
if debug_str := traverse_obj(global_list, (lambda _, v: v.endswith('_w8_'), any)):
|
|
|
|
|
return self._search_regex(
|
|
|
|
|
funcname = self._search_regex(
|
|
|
|
|
r'''(?xs)
|
|
|
|
|
[;\n](?:
|
|
|
|
|
(?P<f>function\s+)|
|
|
|
|
@ -2161,7 +2161,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
|
|
\}\s*catch\(\s*[a-zA-Z0-9_$]+\s*\)\s*
|
|
|
|
|
\{\s*return\s+%s\[%d\]\s*\+\s*(?P=argname)\s*\}\s*return\s+[^}]+\}[;\n]
|
|
|
|
|
''' % (re.escape(varname), global_list.index(debug_str)),
|
|
|
|
|
jscode, 'nsig function name', group='funcname')
|
|
|
|
|
jscode, 'nsig function name', group='funcname', default=None)
|
|
|
|
|
if funcname:
|
|
|
|
|
return funcname
|
|
|
|
|
self.write_debug(join_nonempty(
|
|
|
|
|
'Initial search was unable to find nsig function name',
|
|
|
|
|
player_url and f' player = {player_url}', delim='\n'), only_once=True)
|
|
|
|
|
|
|
|
|
|
# Examples (with placeholders nfunc, narray, idx):
|
|
|
|
|
# * .get("n"))&&(b=nfunc(b)
|
|
|
|
|