aboutsummaryrefslogtreecommitdiffstats
path: root/hypervideo_dl/extractor/pornez.py
diff options
context:
space:
mode:
Diffstat (limited to 'hypervideo_dl/extractor/pornez.py')
-rw-r--r--hypervideo_dl/extractor/pornez.py63
1 files changed, 41 insertions, 22 deletions
diff --git a/hypervideo_dl/extractor/pornez.py b/hypervideo_dl/extractor/pornez.py
index df0e44a..bc45f86 100644
--- a/hypervideo_dl/extractor/pornez.py
+++ b/hypervideo_dl/extractor/pornez.py
@@ -1,41 +1,60 @@
from .common import InfoExtractor
-from ..utils import int_or_none
+from ..utils import (
+ clean_html,
+ int_or_none,
+ get_element_by_class,
+ urljoin,
+)
class PornezIE(InfoExtractor):
- _VALID_URL = r'https?://(?:www\.)?pornez\.net/video(?P<id>[0-9]+)/'
- _TEST = {
+ _VALID_URL = r'https?://(?:www\.)?pornez\.net/(?:video(?P<id>\w+)|watch)/'
+ _TESTS = [{
'url': 'https://pornez.net/video344819/mistresst-funny_penis_names-wmv/',
- 'md5': '2e19a0a1cff3a5dbea0ef1b9e80bcbbc',
'info_dict': {
'id': '344819',
'ext': 'mp4',
- 'title': r'mistresst funny_penis_names wmv',
+ 'title': 'mistresst funny_penis_names wmv',
'thumbnail': r're:^https?://.*\.jpg$',
'age_limit': 18,
- }
- }
+ },
+ 'params': {'skip_download': 'm3u8'},
+ }, {
+ 'url': 'https://pornez.net/watch/leana+lovings+stiff+for+stepdaughter/',
+ 'info_dict': {
+ 'id': '156161',
+ 'ext': 'mp4',
+ 'title': 'Watch leana lovings stiff for stepdaughter porn video.',
+ 'age_limit': 18,
+ },
+ 'params': {'skip_download': 'm3u8'},
+ }, {
+ 'url': 'https://pornez.net/videovzs27fj/tutor4k-e14-blue-wave-1080p-nbq-tutor4k-e14-blue-wave/',
+ 'only_matching': True,
+ }]
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
- iframe_src = self._html_search_regex(
- r'<iframe[^>]+src="(https?://pornez\.net/player/\?[^"]+)"', webpage, 'iframe', fatal=True)
- title = self._html_search_meta(['name', 'twitter:title', 'og:title'], webpage, 'title', default=None)
- if title is None:
- title = self._search_regex(r'<h1>(.*?)</h1>', webpage, 'title', fatal=True)
- thumbnail = self._html_search_meta(['thumbnailUrl'], webpage, 'title', default=None)
- webpage = self._download_webpage(iframe_src, video_id)
- entries = self._parse_html5_media_entries(iframe_src, webpage, video_id)[0]
- for format in entries['formats']:
- height = self._search_regex(r'_(\d+)\.m3u8', format['url'], 'height')
- format['format_id'] = '%sp' % height
- format['height'] = int_or_none(height)
+ if not video_id:
+ video_id = self._search_regex(
+ r'<link[^>]+\bhref=["\']https?://pornez.net/\?p=(\w+)["\']', webpage, 'id')
+
+ iframe_src = self._html_search_regex(r'<iframe[^>]+src="([^"]+)"', webpage, 'iframe')
+ iframe = self._download_webpage(urljoin('https://pornez.net', iframe_src), video_id)
+
+ entries = self._parse_html5_media_entries(iframe_src, iframe, video_id)[0]
+ for fmt in entries['formats']:
+ height = self._search_regex(r'_(\d+)\.m3u8', fmt['url'], 'height')
+ fmt['format_id'] = '%sp' % height
+ fmt['height'] = int_or_none(height)
entries.update({
'id': video_id,
- 'title': title,
- 'thumbnail': thumbnail,
- 'age_limit': 18
+ 'title': (clean_html(get_element_by_class('video-title', webpage))
+ or self._html_search_meta(
+ ['twitter:title', 'og:title', 'description'], webpage, 'title', default=None)),
+ 'thumbnail': self._html_search_meta(['thumbnailUrl'], webpage, 'thumb', default=None),
+ 'age_limit': 18,
})
return entries