mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[faz] fix extraction and add support for Perform Group embeds(fixes #14714)
This commit is contained in:
		| @@ -1,7 +1,10 @@ | ||||
| # coding: utf-8 | ||||
| from __future__ import unicode_literals | ||||
|  | ||||
| import re | ||||
|  | ||||
| from .common import InfoExtractor | ||||
| from ..compat import compat_etree_fromstring | ||||
| from ..utils import ( | ||||
|     xpath_element, | ||||
|     xpath_text, | ||||
| @@ -43,10 +46,15 @@ class FazIE(InfoExtractor): | ||||
|  | ||||
|         webpage = self._download_webpage(url, video_id) | ||||
|         description = self._og_search_description(webpage) | ||||
|         config_xml_url = self._search_regex( | ||||
|             r'videoXMLURL\s*=\s*"([^"]+)', webpage, 'config xml url') | ||||
|         config = self._download_xml( | ||||
|             config_xml_url, video_id, 'Downloading config xml') | ||||
|         media = self._html_search_regex( | ||||
|             r"data-videojs-media='([^']+)", | ||||
|             webpage, 'media') | ||||
|         if media == 'extern': | ||||
|             perform_url = self._search_regex( | ||||
|                 r"<iframe[^>]+?src='((?:http:)?//player\.performgroup\.com/eplayer/eplayer\.html#/?[0-9a-f]{26}\.[0-9a-z]{26})", | ||||
|                 webpage, 'perform url') | ||||
|             return self.url_result(perform_url) | ||||
|         config = compat_etree_fromstring(media) | ||||
|  | ||||
|         encodings = xpath_element(config, 'ENCODINGS', 'encodings', True) | ||||
|         formats = [] | ||||
| @@ -55,12 +63,24 @@ class FazIE(InfoExtractor): | ||||
|             if encoding is not None: | ||||
|                 encoding_url = xpath_text(encoding, 'FILENAME') | ||||
|                 if encoding_url: | ||||
|                     formats.append({ | ||||
|                     tbr = xpath_text(encoding, 'AVERAGEBITRATE', 1000) | ||||
|                     if tbr: | ||||
|                         tbr = int_or_none(tbr.replace(',', '.')) | ||||
|                     f = { | ||||
|                         'url': encoding_url, | ||||
|                         'format_id': code.lower(), | ||||
|                         'quality': pref, | ||||
|                         'tbr': int_or_none(xpath_text(encoding, 'AVERAGEBITRATE')), | ||||
|                     }) | ||||
|                         'tbr': tbr, | ||||
|                         'vcodec': xpath_text(encoding, 'CODEC'), | ||||
|                     } | ||||
|                     mobj = re.search(r'(\d+)x(\d+)_(\d+)\.mp4', encoding_url) | ||||
|                     if mobj: | ||||
|                         f.update({ | ||||
|                             'width': int(mobj.group(1)), | ||||
|                             'height': int(mobj.group(2)), | ||||
|                             'tbr': tbr or int(mobj.group(3)), | ||||
|                         }) | ||||
|                     formats.append(f) | ||||
|         self._sort_formats(formats) | ||||
|  | ||||
|         return { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Remita Amine
					Remita Amine