]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/youjizz.py
3 from .common
import InfoExtractor
9 class YouJizzIE(InfoExtractor
):
10 _VALID_URL
= r
'^(?:https?://)?(?:\w+\.)?youjizz\.com/videos/(?P<videoid>[^.]+).html$'
12 u
'url': u
'http://www.youjizz.com/videos/zeichentrick-1-2189178.html',
13 u
'file': u
'2189178.flv',
14 u
'md5': u
'07e15fa469ba384c7693fd246905547c',
16 u
"title": u
"Zeichentrick 1",
21 def _real_extract(self
, url
):
22 mobj
= re
.match(self
._VALID
_URL
, url
)
24 video_id
= mobj
.group('videoid')
27 webpage
= self
._download
_webpage
(url
, video_id
)
29 age_limit
= self
._rta
_search
(webpage
)
32 video_title
= self
._html
_search
_regex
(r
'<title>(?P<title>.*)</title>',
33 webpage
, u
'title').strip()
36 result
= re
.search(r
'https?://www.youjizz.com/videos/embed/(?P<videoid>[0-9]+)', webpage
)
38 raise ExtractorError(u
'ERROR: unable to extract embed page')
40 embed_page_url
= result
.group(0).strip()
41 video_id
= result
.group('videoid')
43 webpage
= self
._download
_webpage
(embed_page_url
, video_id
)
46 m_playlist
= re
.search(r
'so.addVariable\("playlist", ?"(?P<playlist>.+?)"\);', webpage
)
47 if m_playlist
is not None:
48 playlist_url
= m_playlist
.group('playlist')
49 playlist_page
= self
._download
_webpage
(playlist_url
, video_id
,
50 u
'Downloading playlist page')
51 m_levels
= list(re
.finditer(r
'<level bitrate="(\d+?)" file="(.*?)"', playlist_page
))
52 if len(m_levels
) == 0:
53 raise ExtractorError(u
'Unable to extract video url')
54 videos
= [(int(m
.group(1)), m
.group(2)) for m
in m_levels
]
55 (_
, video_url
) = sorted(videos
)[0]
56 video_url
= video_url
.replace('%252F', '%2F')
58 video_url
= self
._search
_regex
(r
'so.addVariable\("file",encodeURIComponent\("(?P<source>[^"]+)"\)\);',
59 webpage
, u
'video URL')
61 info
= {'id': video_id
,
66 'player_url': embed_page_url
,
67 'age_limit': age_limit
}