]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/youjizz.py
1 from __future__
import unicode_literals
5 from .common
import InfoExtractor
11 class YouJizzIE(InfoExtractor
):
12 _VALID_URL
= r
'^https?://(?:\w+\.)?youjizz\.com/videos/(?P<videoid>[^.]+)\.html$'
14 'url': 'http://www.youjizz.com/videos/zeichentrick-1-2189178.html',
15 'file': '2189178.flv',
16 'md5': '07e15fa469ba384c7693fd246905547c',
18 "title": "Zeichentrick 1",
23 def _real_extract(self
, url
):
24 mobj
= re
.match(self
._VALID
_URL
, url
)
26 video_id
= mobj
.group('videoid')
29 webpage
= self
._download
_webpage
(url
, video_id
)
31 age_limit
= self
._rta
_search
(webpage
)
34 video_title
= self
._html
_search
_regex
(r
'<title>(?P<title>.*)</title>',
35 webpage
, 'title').strip()
38 result
= re
.search(r
'https?://www.youjizz.com/videos/embed/(?P<videoid>[0-9]+)', webpage
)
40 raise ExtractorError('ERROR: unable to extract embed page')
42 embed_page_url
= result
.group(0).strip()
43 video_id
= result
.group('videoid')
45 webpage
= self
._download
_webpage
(embed_page_url
, video_id
)
48 m_playlist
= re
.search(r
'so.addVariable\("playlist", ?"(?P<playlist>.+?)"\);', webpage
)
49 if m_playlist
is not None:
50 playlist_url
= m_playlist
.group('playlist')
51 playlist_page
= self
._download
_webpage
(playlist_url
, video_id
,
52 'Downloading playlist page')
53 m_levels
= list(re
.finditer(r
'<level bitrate="(\d+?)" file="(.*?)"', playlist_page
))
54 if len(m_levels
) == 0:
55 raise ExtractorError('Unable to extract video url')
56 videos
= [(int(m
.group(1)), m
.group(2)) for m
in m_levels
]
57 (_
, video_url
) = sorted(videos
)[0]
58 video_url
= video_url
.replace('%252F', '%2F')
60 video_url
= self
._search
_regex
(r
'so.addVariable\("file",encodeURIComponent\("(?P<source>[^"]+)"\)\);',
69 'player_url': embed_page_url
,
70 'age_limit': age_limit
,