]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/youjizz.py
1265639e821bd873b74aeea08811f8c22e966ba1
   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
}