[pornflip] Add extractor (closes #11556)

pull/8/head
einstein95 8 years ago committed by Sergey M․
parent a243abb80d
commit 8d1fbe0cb2
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D

@ -724,6 +724,7 @@ from .polskieradio import (
) )
from .porn91 import Porn91IE from .porn91 import Porn91IE
from .porncom import PornComIE from .porncom import PornComIE
from .pornflip import PornFlipIE
from .pornhd import PornHdIE from .pornhd import PornHdIE
from .pornhub import ( from .pornhub import (
PornHubIE, PornHubIE,

@ -0,0 +1,59 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..compat import (
compat_parse_qs,
)
from ..utils import (
int_or_none,
try_get,
RegexNotFoundError,
)
class PornFlipIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?pornflip\.com/v/(?P<id>[0-9A-Za-z]{11})'
_TEST = {
'url': 'https://www.pornflip.com/v/wz7DfNhMmep',
'md5': '98c46639849145ae1fd77af532a9278c',
'info_dict': {
'id': 'wz7DfNhMmep',
'ext': 'mp4',
'title': '2 Amateurs swallow make his dream cumshots true',
'uploader': 'figifoto',
'thumbnail': r're:^https?://.*\.jpg$',
'age_limit': 18,
}
}
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
uploader = self._html_search_regex(
r'<span class="name">\s+<a class="ajax" href=".+>\s+<strong>([^<]+)<', webpage, 'uploader', fatal=False)
flashvars = compat_parse_qs(self._html_search_regex(
r'<embed.+?flashvars="([^"]+)"',
webpage, 'flashvars'))
title = flashvars['video_vars[title]'][0]
thumbnail = try_get(flashvars, lambda x: x['video_vars[big_thumb]'][0])
formats = []
for k, v in flashvars.items():
height = self._search_regex(r'video_vars\[video_urls\]\[(\d+).+?\]', k, 'height', default=None)
if height:
url = v[0]
formats.append({
'height': int_or_none(height),
'url': url
})
self._sort_formats(formats)
return {
'id': video_id,
'formats': formats,
'title': title,
'uploader': uploader,
'thumbnail': thumbnail,
'age_limit': 18,
}
Loading…
Cancel
Save