mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[4tube] Try extracting sources from the webpage before fetching player.js (Closes #7103)
This commit is contained in:
		| @@ -68,19 +68,24 @@ class FourTubeIE(InfoExtractor): | |||||||
|             webpage, 'like count', fatal=False)) |             webpage, 'like count', fatal=False)) | ||||||
|         duration = parse_duration(self._html_search_meta('duration', webpage)) |         duration = parse_duration(self._html_search_meta('duration', webpage)) | ||||||
|  |  | ||||||
|         player_js = self._download_webpage( |         media_id = self._search_regex( | ||||||
|             self._search_regex( |             r'<button[^>]+data-id=(["\'])(?P<id>\d+)\1[^>]+data-quality=', webpage, | ||||||
|                 r'<script[^>]id=(["\'])playerembed\1[^>]+src=(["\'])(?P<url>.+?)\2', |             'media id', default=None, group='id') | ||||||
|                 webpage, 'player JS', group='url'), |         sources = [ | ||||||
|             video_id, 'Downloading player JS') |             quality | ||||||
|  |             for _, quality in re.findall(r'<button[^>]+data-quality=(["\'])(.+?)\1', webpage)] | ||||||
|         params_js = self._search_regex( |         if not (media_id and sources): | ||||||
|             r'\$\.ajax\(url,\ opts\);\s*\}\s*\}\)\(([0-9,\[\] ]+)\)', |             player_js = self._download_webpage( | ||||||
|             player_js, 'initialization parameters' |                 self._search_regex( | ||||||
|         ) |                     r'<script[^>]id=(["\'])playerembed\1[^>]+src=(["\'])(?P<url>.+?)\2', | ||||||
|         params = self._parse_json('[%s]' % params_js, video_id) |                     webpage, 'player JS', group='url'), | ||||||
|         media_id = params[0] |                 video_id, 'Downloading player JS') | ||||||
|         sources = ['%s' % p for p in params[2]] |             params_js = self._search_regex( | ||||||
|  |                 r'\$\.ajax\(url,\ opts\);\s*\}\s*\}\)\(([0-9,\[\] ]+)\)', | ||||||
|  |                 player_js, 'initialization parameters') | ||||||
|  |             params = self._parse_json('[%s]' % params_js, video_id) | ||||||
|  |             media_id = params[0] | ||||||
|  |             sources = ['%s' % p for p in params[2]] | ||||||
|  |  | ||||||
|         token_url = 'http://tkn.4tube.com/{0}/desktop/{1}'.format( |         token_url = 'http://tkn.4tube.com/{0}/desktop/{1}'.format( | ||||||
|             media_id, '+'.join(sources)) |             media_id, '+'.join(sources)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․