]>
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
,