mirror of
				https://github.com/ytdl-org/youtube-dl
				synced 2025-10-31 09:43:32 +00:00 
			
		
		
		
	[YouTube] Fix signature function extraction for 2f1832d2
				
					
				
			* `_` was omitted from patterns * thx yt-dlp/yt-dlp#11801 Co-authored-by: bashonly
This commit is contained in:
		
							parent
							
								
									cd7c7b5edb
								
							
						
					
					
						commit
						eeafbbc3e5
					
				| @ -79,6 +79,11 @@ _SIG_TESTS = [ | ||||
|         '2aq0aqSyOoJXtK73m-uME_jv7-pT15gOFC02RFkGMqWpzEICs69VdbwQ0LDp1v7j8xx92efCJlYFYb1sUkkBSPOlPmXgIARw8JQ0qOAOAA', | ||||
|         'MyOSJXtKI3m-uME_jv7-pT12gOFC02RFkGoqWpzE0Cs69VdbwQ0LDp1v7j8xx92efCJlYFYb1sUkkBSPOlPmXgIARw8JQ0qOAOAA', | ||||
|     ), | ||||
|     ( | ||||
|         'https://www.youtube.com/s/player/2f1832d2/player_ias.vflset/en_US/base.js', | ||||
|         '2aq0aqSyOoJXtK73m-uME_jv7-pT15gOFC02RFkGMqWpzEICs69VdbwQ0LDp1v7j8xx92efCJlYFYb1sUkkBSPOlPmXgIARw8JQ0qOAOAA', | ||||
|         '0QJ8wRAIgXmPlOPSBkkUs1bYFYlJCfe29xxAj7v1pDL0QwbdV96sCIEzpWqMGkFR20CFOg51Tp-7vj_EMu-m37KtXJ2OySqa0q', | ||||
|     ), | ||||
| ] | ||||
| 
 | ||||
| _NSIG_TESTS = [ | ||||
| @ -210,6 +215,10 @@ _NSIG_TESTS = [ | ||||
|         'https://www.youtube.com/s/player/f8f53e1a/player_ias.vflset/en_US/base.js', | ||||
|         'VTQOUOv0mCIeJ7i8kZB', 'kcfD8wy0sNLyNQ', | ||||
|     ), | ||||
|     ( | ||||
|         'https://www.youtube.com/s/player/2f1832d2/player_ias.vflset/en_US/base.js', | ||||
|         'YWt1qdbe8SAfkoPHW5d', 'RrRjWQOJmBiP', | ||||
|     ), | ||||
| ] | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -1587,19 +1587,19 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|         # ;N&&(N=sig(decodeURIComponent(N)),J.set(R,encodeURIComponent(N)));return J}; | ||||
|         # {var H=u,k=f.sp,v=sig(decodeURIComponent(f.s));H.set(k,encodeURIComponent(v))} | ||||
|         funcname = self._search_regex( | ||||
|             (r'\b(?P<var>[a-zA-Z0-9$]+)&&\((?P=var)=(?P<sig>[a-zA-Z0-9$]{2,})\(decodeURIComponent\((?P=var)\)\)', | ||||
|              r'(?P<sig>[a-zA-Z0-9$]+)\s*=\s*function\(\s*(?P<arg>[a-zA-Z0-9$]+)\s*\)\s*{\s*(?P=arg)\s*=\s*(?P=arg)\.split\(\s*""\s*\)\s*;\s*[^}]+;\s*return\s+(?P=arg)\.join\(\s*""\s*\)', | ||||
|              r'(?:\b|[^a-zA-Z0-9$])(?P<sig>[a-zA-Z0-9$]{2,})\s*=\s*function\(\s*a\s*\)\s*{\s*a\s*=\s*a\.split\(\s*""\s*\)(?:;[a-zA-Z0-9$]{2}\.[a-zA-Z0-9$]{2}\(a,\d+\))?', | ||||
|             (r'\b(?P<var>[\w$]+)&&\((?P=var)=(?P<sig>[\w$]{2,})\(decodeURIComponent\((?P=var)\)\)', | ||||
|              r'(?P<sig>[\w$]+)\s*=\s*function\(\s*(?P<arg>[\w$]+)\s*\)\s*{\s*(?P=arg)\s*=\s*(?P=arg)\.split\(\s*""\s*\)\s*;\s*[^}]+;\s*return\s+(?P=arg)\.join\(\s*""\s*\)', | ||||
|              r'(?:\b|[^\w$])(?P<sig>[\w$]{2,})\s*=\s*function\(\s*a\s*\)\s*{\s*a\s*=\s*a\.split\(\s*""\s*\)(?:;[\w$]{2}\.[\w$]{2}\(a,\d+\))?', | ||||
|              # Old patterns | ||||
|              r'\b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*(?P<sig>[a-zA-Z0-9$]+)\(', | ||||
|              r'\b[a-zA-Z0-9]+\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*(?P<sig>[a-zA-Z0-9$]+)\(', | ||||
|              r'\bm=(?P<sig>[a-zA-Z0-9$]{2,})\(decodeURIComponent\(h\.s\)\)', | ||||
|              r'\b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*(?P<sig>[\w$]+)\(', | ||||
|              r'\b[\w]+\s*&&\s*[\w]+\.set\([^,]+\s*,\s*encodeURIComponent\s*\(\s*(?P<sig>[\w$]+)\(', | ||||
|              r'\bm=(?P<sig>[\w$]{2,})\(decodeURIComponent\(h\.s\)\)', | ||||
|              # Obsolete patterns | ||||
|              r'("|\')signature\1\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(', | ||||
|              r'\.sig\|\|(?P<sig>[a-zA-Z0-9$]+)\(', | ||||
|              r'yt\.akamaized\.net/\)\s*\|\|\s*.*?\s*[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*(?:encodeURIComponent\s*\()?\s*(?P<sig>[a-zA-Z0-9$]+)\(', | ||||
|              r'\b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*(?P<sig>[a-zA-Z0-9$]+)\(', | ||||
|              r'\bc\s*&&\s*[a-zA-Z0-9]+\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P<sig>[a-zA-Z0-9$]+)\('), | ||||
|              r'("|\')signature\1\s*,\s*(?P<sig>[\w$]+)\(', | ||||
|              r'\.sig\|\|(?P<sig>[\w$]+)\(', | ||||
|              r'yt\.akamaized\.net/\)\s*\|\|\s*.*?\s*[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*(?:encodeURIComponent\s*\()?\s*(?P<sig>[\w$]+)\(', | ||||
|              r'\b[cs]\s*&&\s*[adf]\.set\([^,]+\s*,\s*(?P<sig>[\w$]+)\(', | ||||
|              r'\bc\s*&&\s*[\w]+\.set\([^,]+\s*,\s*\([^)]*\)\s*\(\s*(?P<sig>[\w$]+)\('), | ||||
|             jscode, 'Initial JS player signature function name', group='sig') | ||||
| 
 | ||||
|         jsi = JSInterpreter(jscode) | ||||
| @ -1699,7 +1699,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|                     (?P<name>(?!\d)[a-zA-Z\d_$]+)\s*=\s*function\((?!\d)[a-zA-Z\d_$]+\) | ||||
|                     \s*\{(?:(?!};).)+?(?: | ||||
|                         ["']enhanced_except_ | | ||||
|                         return\s*(?P<q>"|')[a-zA-Z\d-]+_w8_(?P=q)\s*\+\s*[a-zA-Z0-9_$]+ | ||||
|                         return\s*(?P<q>"|')[a-zA-Z\d-]+_w8_(?P=q)\s*\+\s*[\w$]+ | ||||
|                     ) | ||||
|                 ''', jscode, 'Initial JS player n function name', group='name') | ||||
|         if not idx: | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 dirkf
						dirkf