mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[pornhd] Fix extraction (closes #24128)
This commit is contained in:
		| @@ -8,6 +8,7 @@ from ..utils import ( | |||||||
|     ExtractorError, |     ExtractorError, | ||||||
|     int_or_none, |     int_or_none, | ||||||
|     js_to_json, |     js_to_json, | ||||||
|  |     merge_dicts, | ||||||
|     urljoin, |     urljoin, | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -27,23 +28,22 @@ class PornHdIE(InfoExtractor): | |||||||
|             'view_count': int, |             'view_count': int, | ||||||
|             'like_count': int, |             'like_count': int, | ||||||
|             'age_limit': 18, |             'age_limit': 18, | ||||||
|         } |         }, | ||||||
|  |         'skip': 'HTTP Error 404: Not Found', | ||||||
|     }, { |     }, { | ||||||
|         # removed video |  | ||||||
|         'url': 'http://www.pornhd.com/videos/1962/sierra-day-gets-his-cum-all-over-herself-hd-porn-video', |         'url': 'http://www.pornhd.com/videos/1962/sierra-day-gets-his-cum-all-over-herself-hd-porn-video', | ||||||
|         'md5': '956b8ca569f7f4d8ec563e2c41598441', |         'md5': '1b7b3a40b9d65a8e5b25f7ab9ee6d6de', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|             'id': '1962', |             'id': '1962', | ||||||
|             'display_id': 'sierra-day-gets-his-cum-all-over-herself-hd-porn-video', |             'display_id': 'sierra-day-gets-his-cum-all-over-herself-hd-porn-video', | ||||||
|             'ext': 'mp4', |             'ext': 'mp4', | ||||||
|             'title': 'Sierra loves doing laundry', |             'title': 'md5:98c6f8b2d9c229d0f0fde47f61a1a759', | ||||||
|             'description': 'md5:8ff0523848ac2b8f9b065ba781ccf294', |             'description': 'md5:8ff0523848ac2b8f9b065ba781ccf294', | ||||||
|             'thumbnail': r're:^https?://.*\.jpg', |             'thumbnail': r're:^https?://.*\.jpg', | ||||||
|             'view_count': int, |             'view_count': int, | ||||||
|             'like_count': int, |             'like_count': int, | ||||||
|             'age_limit': 18, |             'age_limit': 18, | ||||||
|         }, |         }, | ||||||
|         'skip': 'Not available anymore', |  | ||||||
|     }] |     }] | ||||||
|  |  | ||||||
|     def _real_extract(self, url): |     def _real_extract(self, url): | ||||||
| @@ -61,7 +61,13 @@ class PornHdIE(InfoExtractor): | |||||||
|             r"(?s)sources'?\s*[:=]\s*(\{.+?\})", |             r"(?s)sources'?\s*[:=]\s*(\{.+?\})", | ||||||
|             webpage, 'sources', default='{}')), video_id) |             webpage, 'sources', default='{}')), video_id) | ||||||
|  |  | ||||||
|  |         info = {} | ||||||
|         if not sources: |         if not sources: | ||||||
|  |             entries = self._parse_html5_media_entries(url, webpage, video_id) | ||||||
|  |             if entries: | ||||||
|  |                 info = entries[0] | ||||||
|  |  | ||||||
|  |         if not sources and not info: | ||||||
|             message = self._html_search_regex( |             message = self._html_search_regex( | ||||||
|                 r'(?s)<(div|p)[^>]+class="no-video"[^>]*>(?P<value>.+?)</\1', |                 r'(?s)<(div|p)[^>]+class="no-video"[^>]*>(?P<value>.+?)</\1', | ||||||
|                 webpage, 'error message', group='value') |                 webpage, 'error message', group='value') | ||||||
| @@ -80,23 +86,29 @@ class PornHdIE(InfoExtractor): | |||||||
|                 'format_id': format_id, |                 'format_id': format_id, | ||||||
|                 'height': height, |                 'height': height, | ||||||
|             }) |             }) | ||||||
|         self._sort_formats(formats) |         if formats: | ||||||
|  |             info['formats'] = formats | ||||||
|  |         self._sort_formats(info['formats']) | ||||||
|  |  | ||||||
|         description = self._html_search_regex( |         description = self._html_search_regex( | ||||||
|             r'<(div|p)[^>]+class="description"[^>]*>(?P<value>[^<]+)</\1', |             (r'(?s)<section[^>]+class=["\']video-description[^>]+>(?P<value>.+?)</section>', | ||||||
|             webpage, 'description', fatal=False, group='value') |              r'<(div|p)[^>]+class="description"[^>]*>(?P<value>[^<]+)</\1'), | ||||||
|  |             webpage, 'description', fatal=False, | ||||||
|  |             group='value') or self._html_search_meta( | ||||||
|  |             'description', webpage, default=None) or self._og_search_description(webpage) | ||||||
|         view_count = int_or_none(self._html_search_regex( |         view_count = int_or_none(self._html_search_regex( | ||||||
|             r'(\d+) views\s*<', webpage, 'view count', fatal=False)) |             r'(\d+) views\s*<', webpage, 'view count', fatal=False)) | ||||||
|         thumbnail = self._search_regex( |         thumbnail = self._search_regex( | ||||||
|             r"poster'?\s*:\s*([\"'])(?P<url>(?:(?!\1).)+)\1", webpage, |             r"poster'?\s*:\s*([\"'])(?P<url>(?:(?!\1).)+)\1", webpage, | ||||||
|             'thumbnail', fatal=False, group='url') |             'thumbnail', default=None, group='url') | ||||||
|  |  | ||||||
|         like_count = int_or_none(self._search_regex( |         like_count = int_or_none(self._search_regex( | ||||||
|             (r'(\d+)\s*</11[^>]+>(?: |\s)*\blikes', |             (r'(\d+)</span>\s*likes', | ||||||
|  |              r'(\d+)\s*</11[^>]+>(?: |\s)*\blikes', | ||||||
|              r'class=["\']save-count["\'][^>]*>\s*(\d+)'), |              r'class=["\']save-count["\'][^>]*>\s*(\d+)'), | ||||||
|             webpage, 'like count', fatal=False)) |             webpage, 'like count', fatal=False)) | ||||||
|  |  | ||||||
|         return { |         return merge_dicts(info, { | ||||||
|             'id': video_id, |             'id': video_id, | ||||||
|             'display_id': display_id, |             'display_id': display_id, | ||||||
|             'title': title, |             'title': title, | ||||||
| @@ -106,4 +118,4 @@ class PornHdIE(InfoExtractor): | |||||||
|             'like_count': like_count, |             'like_count': like_count, | ||||||
|             'formats': formats, |             'formats': formats, | ||||||
|             'age_limit': 18, |             'age_limit': 18, | ||||||
|         } |         }) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user