@ -692,7 +692,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
' invidious ' : ' | ' . join ( _INVIDIOUS_SITES ) ,
' invidious ' : ' | ' . join ( _INVIDIOUS_SITES ) ,
}
}
_PLAYER_INFO_RE = (
_PLAYER_INFO_RE = (
r ' /s/player/(?P<id>[a-zA-Z0-9_-] { 8,})/ player' ,
r ' /s/player/(?P<id>[a-zA-Z0-9_-] { 8,})/ /(?:tv-)? player' ,
r ' /(?P<id>[a-zA-Z0-9_-] { 8,})/player(?:_ias \ .vflset(?:/[a-zA-Z] { 2,3}_[a-zA-Z] { 2,3})?|-plasma-ias-(?:phone|tablet)-[a-z] {2} _[A-Z] {2} \ .vflset)/base \ .js$ ' ,
r ' /(?P<id>[a-zA-Z0-9_-] { 8,})/player(?:_ias \ .vflset(?:/[a-zA-Z] { 2,3}_[a-zA-Z] { 2,3})?|-plasma-ias-(?:phone|tablet)-[a-z] {2} _[A-Z] {2} \ .vflset)/base \ .js$ ' ,
r ' \ b(?P<id>vfl[a-zA-Z0-9_-]+) \ b.*? \ .js$ ' ,
r ' \ b(?P<id>vfl[a-zA-Z0-9_-]+) \ b.*? \ .js$ ' ,
)
)
@ -1857,7 +1857,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
def _extract_n_function_code_jsi ( self , video_id , jsi , player_id = None ) :
def _extract_n_function_code_jsi ( self , video_id , jsi , player_id = None ) :
var_ay = self . _search_regex (
var_ay = self . _search_regex (
r ' (?:[; \ s]|^) \ s*(var \ s*[ \ w$]+ \ s*= \ s* " [^" ] +" \ s* \ . \ s*split \ ( " \ { " \ ))(?= \ s*[,;]) ' ,
r ' (?:[; \ s]|^) \ s*(var \ s*[ \ w$]+ \ s*= \ s* " (?:\\ " | [^" ] ) +" \ s* \ . \ s*split \ ( " \ W+ " \ ))(?= \ s*[,;]) ' ,
jsi . code , ' useful values ' , default = ' ' )
jsi . code , ' useful values ' , default = ' ' )
func_name = self . _extract_n_function_name ( jsi . code )
func_name = self . _extract_n_function_name ( jsi . code )