mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 22:55:18 +00:00 
			
		
		
		
	[teamcoco] Fix "preload" data extraction (fixes #5179)
This commit is contained in:
		| @@ -1,3 +1,4 @@ | |||||||
|  | # -*- coding: utf-8 -*- | ||||||
| from __future__ import unicode_literals | from __future__ import unicode_literals | ||||||
|  |  | ||||||
| import base64 | import base64 | ||||||
| @@ -35,6 +36,17 @@ class TeamcocoIE(InfoExtractor): | |||||||
|                 'duration': 288, |                 'duration': 288, | ||||||
|                 'age_limit': 0, |                 'age_limit': 0, | ||||||
|             } |             } | ||||||
|  |         }, { | ||||||
|  |             'url': 'http://teamcoco.com/video/timothy-olyphant-drinking-whiskey', | ||||||
|  |             'info_dict': { | ||||||
|  |                 'id': '88748', | ||||||
|  |                 'ext': 'mp4', | ||||||
|  |                 'title': 'Timothy Olyphant Raises A Toast To “Justified”', | ||||||
|  |                 'description': 'md5:15501f23f020e793aeca761205e42c24', | ||||||
|  |             }, | ||||||
|  |             'params': { | ||||||
|  |                 'skip_download': True,  # m3u8 downloads | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     ] |     ] | ||||||
|     _VIDEO_ID_REGEXES = ( |     _VIDEO_ID_REGEXES = ( | ||||||
| @@ -54,10 +66,23 @@ class TeamcocoIE(InfoExtractor): | |||||||
|             video_id = self._html_search_regex( |             video_id = self._html_search_regex( | ||||||
|                 self._VIDEO_ID_REGEXES, webpage, 'video id') |                 self._VIDEO_ID_REGEXES, webpage, 'video id') | ||||||
|  |  | ||||||
|  |         preload = None | ||||||
|         preloads = re.findall(r'"preload":\s*"([^"]+)"', webpage) |         preloads = re.findall(r'"preload":\s*"([^"]+)"', webpage) | ||||||
|         if not preloads: |         if preloads: | ||||||
|             raise ExtractorError('Preload information could not be extracted') |             preload = max([(len(p), p) for p in preloads])[1] | ||||||
|         preload = max([(len(p), p) for p in preloads])[1] |  | ||||||
|  |         if not preload: | ||||||
|  |             preload = ''.join(re.findall(r'this\.push\("([^"]+)"\);', webpage)) | ||||||
|  |  | ||||||
|  |         if not preload: | ||||||
|  |             preload = self._html_search_regex([ | ||||||
|  |                 r'player,\[?"([^"]+)"\]?', r'player.init\(\[?"([^"]+)"\]?\)' | ||||||
|  |             ], webpage.replace('","', ''), 'preload data', default=None) | ||||||
|  |  | ||||||
|  |         if not preload: | ||||||
|  |             raise ExtractorError( | ||||||
|  |                 'Preload information could not be extracted', expected=True) | ||||||
|  |  | ||||||
|         data = self._parse_json( |         data = self._parse_json( | ||||||
|             base64.b64decode(preload.encode('ascii')).decode('utf-8'), video_id) |             base64.b64decode(preload.encode('ascii')).decode('utf-8'), video_id) | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan