mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	_find_jwplayer_data() returns dict or None
This simplifies code for callers of `_find_jwplayer_data()` which no longer have to run `_parse_json()` on the return value. It also makes sure that `_find_jwplayer_data()` returns either a `dict` or `None` and nothing else.
This commit is contained in:
		| @@ -2161,18 +2161,24 @@ class InfoExtractor(object): | ||||
|                     }) | ||||
|         return formats | ||||
|  | ||||
|     @staticmethod | ||||
|     def _find_jwplayer_data(webpage): | ||||
|     def _find_jwplayer_data(self, webpage, video_id=None, transform_source=js_to_json): | ||||
|         mobj = re.search( | ||||
|             r'jwplayer\((?P<quote>[\'"])[^\'" ]+(?P=quote)\)\.setup\s*\((?P<options>[^)]+)\)', | ||||
|             webpage) | ||||
|         if mobj: | ||||
|             return mobj.group('options') | ||||
|             try: | ||||
|                 jwplayer_data = self._parse_json(mobj.group('options'), | ||||
|                                                  video_id=video_id, | ||||
|                                                  transform_source=transform_source) | ||||
|             except ExtractorError: | ||||
|                 pass | ||||
|             else: | ||||
|                 if isinstance(jwplayer_data, dict): | ||||
|                     return jwplayer_data | ||||
|  | ||||
|     def _extract_jwplayer_data(self, webpage, video_id, *args, **kwargs): | ||||
|         jwplayer_data = self._parse_json( | ||||
|             self._find_jwplayer_data(webpage), video_id, | ||||
|             transform_source=js_to_json) | ||||
|         jwplayer_data = self._find_jwplayer_data( | ||||
|             webpage, video_id, transform_source=js_to_json) | ||||
|         return self._parse_jwplayer_data( | ||||
|             jwplayer_data, video_id, *args, **kwargs) | ||||
|  | ||||
|   | ||||
| @@ -2518,14 +2518,10 @@ class GenericIE(InfoExtractor): | ||||
|                 self._sort_formats(entry['formats']) | ||||
|             return self.playlist_result(entries) | ||||
|  | ||||
|         jwplayer_data_str = self._find_jwplayer_data(webpage) | ||||
|         if jwplayer_data_str: | ||||
|             try: | ||||
|                 jwplayer_data = self._parse_json( | ||||
|                     jwplayer_data_str, video_id, transform_source=js_to_json) | ||||
|         jwplayer_data = self._find_jwplayer_data( | ||||
|             webpage, video_id, transform_source=js_to_json) | ||||
|         if jwplayer_data: | ||||
|             return self._parse_jwplayer_data(jwplayer_data, video_id) | ||||
|             except ExtractorError: | ||||
|                 pass | ||||
|  | ||||
|         def check_video(vurl): | ||||
|             if YoutubeIE.suitable(vurl): | ||||
|   | ||||
| @@ -31,9 +31,8 @@ class TVNoeIE(InfoExtractor): | ||||
|             r'<iframe[^>]+src="([^"]+)"', webpage, 'iframe URL') | ||||
|  | ||||
|         ifs_page = self._download_webpage(iframe_url, video_id) | ||||
|         jwplayer_data = self._parse_json( | ||||
|             self._find_jwplayer_data(ifs_page), | ||||
|             video_id, transform_source=js_to_json) | ||||
|         jwplayer_data = self._find_jwplayer_data( | ||||
|             ifs_page, video_id, transform_source=js_to_json) | ||||
|         info_dict = self._parse_jwplayer_data( | ||||
|             jwplayer_data, video_id, require_title=False, base_url=iframe_url) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user