]>
jfr.im git - yt-dlp.git/blob - youtube_dl/extractor/sunporno.py
1 from __future__
import unicode_literals
5 from .common
import InfoExtractor
14 class SunPornoIE(InfoExtractor
):
15 _VALID_URL
= r
'https?://(?:www\.)?sunporno\.com/videos/(?P<id>\d+)'
17 'url': 'http://www.sunporno.com/videos/807778/',
18 'md5': '6457d3c165fd6de062b99ef6c2ff4c86',
22 'title': 'md5:0a400058e8105d39e35c35e7c5184164',
23 'description': 'md5:a31241990e1bd3a64e72ae99afb325fb',
24 'thumbnail': 're:^https?://.*\.jpg$',
29 def _real_extract(self
, url
):
30 mobj
= re
.match(self
._VALID
_URL
, url
)
31 video_id
= mobj
.group('id')
33 webpage
= self
._download
_webpage
(url
, video_id
)
35 title
= self
._html
_search
_regex
(r
'<title>([^<]+)</title>', webpage
, 'title')
36 description
= self
._html
_search
_meta
('description', webpage
, 'description')
37 thumbnail
= self
._html
_search
_regex
(
38 r
'poster="([^"]+)"', webpage
, 'thumbnail', fatal
=False)
40 duration
= parse_duration(self
._search
_regex
(
41 r
'<span>Duration: (\d+:\d+)</span>', webpage
, 'duration', fatal
=False))
43 view_count
= int_or_none(self
._html
_search
_regex
(
44 r
'<span class="views">(\d+)</span>', webpage
, 'view count', fatal
=False))
45 comment_count
= int_or_none(self
._html
_search
_regex
(
46 r
'(\d+)</b> Comments?', webpage
, 'comment count', fatal
=False))
49 quality
= qualities(['mp4', 'flv'])
50 for video_url
in re
.findall(r
'<source src="([^"]+)"', webpage
):
51 video_ext
= determine_ext(video_url
)
54 'format_id': video_ext
,
55 'quality': quality(video_ext
),
57 self
._sort
_formats
(formats
)
62 'description': description
,
63 'thumbnail': thumbnail
,
65 'view_count': view_count
,
66 'comment_count': comment_count
,