[ie/youtube] Make initial n function name search non-fatal

Authored by: bashonly
pull/12761/head
bashonly 3 weeks ago
parent c445e9a703
commit 57f4350fe4
No known key found for this signature in database
GPG Key ID: 783F096F253D15B0

@ -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)

Loading…
Cancel
Save