]>
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"
20 def _real_extract(self
, url
):
21 mobj
= re
.match(self
._VALID
_URL
, url
)
23 video_id
= mobj
.group('videoid')
26 webpage
= self
._download
_webpage
(url
, video_id
)
29 video_title
= self
._html
_search
_regex
(r
'<title>(?P<title>.*)</title>',
30 webpage
, u
'title').strip()
33 result
= re
.search(r
'https?://www.youjizz.com/videos/embed/(?P<videoid>[0-9]+)', webpage
)
35 raise ExtractorError(u
'ERROR: unable to extract embed page')
37 embed_page_url
= result
.group(0).strip()
38 video_id
= result
.group('videoid')
40 webpage
= self
._download
_webpage
(embed_page_url
, video_id
)
43 m_playlist
= re
.search(r
'so.addVariable\("playlist", ?"(?P<playlist>.+?)"\);', webpage
)
44 if m_playlist
is not None:
45 playlist_url
= m_playlist
.group('playlist')
46 playlist_page
= self
._download
_webpage
(playlist_url
, video_id
,
47 u
'Downloading playlist page')
48 m_levels
= list(re
.finditer(r
'<level bitrate="(\d+?)" file="(.*?)"', playlist_page
))
49 if len(m_levels
) == 0:
50 raise ExtractorError(u
'Unable to extract video url')
51 videos
= [(int(m
.group(1)), m
.group(2)) for m
in m_levels
]
52 (_
, video_url
) = sorted(videos
)[0]
53 video_url
= video_url
.replace('%252F', '%2F')
55 video_url
= self
._search
_regex
(r
'so.addVariable\("file",encodeURIComponent\("(?P<source>[^"]+)"\)\);',
56 webpage
, u
'video URL')
58 info
= {'id': video_id
,
63 'player_url': embed_page_url
}