mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:40:45 +00:00 
			
		
		
		
	| @@ -1,7 +1,5 @@ | ||||
| from .common import InfoExtractor | ||||
| from ..utils import ( | ||||
|     extract_attributes, | ||||
|     get_element_html_by_id, | ||||
|     int_or_none, | ||||
|     parse_count, | ||||
|     parse_duration, | ||||
| @@ -42,27 +40,36 @@ class NoodleMagazineIE(InfoExtractor): | ||||
|         like_count = parse_count(self._html_search_meta('ya:ovs:likes', webpage, default=None)) | ||||
|         upload_date = unified_strdate(self._html_search_meta('ya:ovs:upload_date', webpage, default='')) | ||||
| 
 | ||||
|         player_path = extract_attributes(get_element_html_by_id('iplayer', webpage) or '')['src'] | ||||
|         def build_url(url_or_path): | ||||
|             return urljoin('https://adult.noodlemagazine.com', url_or_path) | ||||
| 
 | ||||
|         headers = {'Referer': url} | ||||
|         player_path = self._html_search_regex( | ||||
|             r'<iframe[^>]+\bid="iplayer"[^>]+\bsrc="([^"]+)"', webpage, 'player path') | ||||
|         player_iframe = self._download_webpage( | ||||
|             urljoin('https://adult.noodlemagazine.com', player_path), video_id, 'Downloading iframe page') | ||||
|             build_url(player_path), video_id, 'Downloading iframe page', headers=headers) | ||||
|         playlist_url = self._search_regex( | ||||
|             r'window\.playlistUrl\s*=\s*["\']([^"\']+)["\']', player_iframe, 'playlist url') | ||||
|         playlist_info = self._download_json( | ||||
|             urljoin('https://adult.noodlemagazine.com', playlist_url), video_id, headers={'Referer': url}) | ||||
|         playlist_info = self._download_json(build_url(playlist_url), video_id, headers=headers) | ||||
| 
 | ||||
|         thumbnail = self._og_search_property('image', webpage, default=None) or playlist_info.get('image') | ||||
|         formats = traverse_obj(playlist_info, ('sources', lambda _, v: v['file'], { | ||||
|             'url': 'file', | ||||
|             'format_id': 'label', | ||||
|             'height': ('label', {int_or_none}), | ||||
|             'ext': 'type', | ||||
|         })) | ||||
|         formats = [] | ||||
|         for source in traverse_obj(playlist_info, ('sources', lambda _, v: v['file'])): | ||||
|             if source.get('type') == 'hls': | ||||
|                 formats.extend(self._extract_m3u8_formats( | ||||
|                     build_url(source['file']), video_id, 'mp4', fatal=False, m3u8_id='hls')) | ||||
|             else: | ||||
|                 formats.append(traverse_obj(source, { | ||||
|                     'url': ('file', {build_url}), | ||||
|                     'format_id': 'label', | ||||
|                     'height': ('label', {int_or_none}), | ||||
|                     'ext': 'type', | ||||
|                 })) | ||||
| 
 | ||||
|         return { | ||||
|             'id': video_id, | ||||
|             'formats': formats, | ||||
|             'title': title, | ||||
|             'thumbnail': thumbnail, | ||||
|             'thumbnail': self._og_search_property('image', webpage, default=None) or playlist_info.get('image'), | ||||
|             'duration': duration, | ||||
|             'description': description, | ||||
|             'tags': tags, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bashonly
					bashonly