]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/youjizz.py
31e2f9263ada15aa4932b66347b12640b1a46621
   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<id>[0-9]+)\.html(?:$|[?#])' 
  14         'url': 'http://www.youjizz.com/videos/zeichentrick-1-2189178.html', 
  15         'md5': '07e15fa469ba384c7693fd246905547c', 
  19             'title': 'Zeichentrick 1', 
  23         'url': 'http://www.youjizz.com/videos/-2189178.html', 
  24         'only_matching': True, 
  27     def _real_extract(self
, url
): 
  28         video_id 
= self
._match
_id
(url
) 
  29         webpage 
= self
._download
_webpage
(url
, video_id
) 
  30         age_limit 
= self
._rta
_search
(webpage
) 
  31         video_title 
= self
._html
_search
_regex
( 
  32             r
'<title>\s*(.*)\s*</title>', webpage
, 'title') 
  34         embed_page_url 
= self
._search
_regex
( 
  35             r
'(https?://www.youjizz.com/videos/embed/[0-9]+)', 
  36             webpage
, 'embed page') 
  37         webpage 
= self
._download
_webpage
( 
  38             embed_page_url
, video_id
, note
='downloading embed page') 
  41         m_playlist 
= re
.search(r
'so.addVariable\("playlist", ?"(?P<playlist>.+?)"\);', webpage
) 
  42         if m_playlist 
is not None: 
  43             playlist_url 
= m_playlist
.group('playlist') 
  44             playlist_page 
= self
._download
_webpage
(playlist_url
, video_id
, 
  45                                                    'Downloading playlist page') 
  46             m_levels 
= list(re
.finditer(r
'<level bitrate="(\d+?)" file="(.*?)"', playlist_page
)) 
  47             if len(m_levels
) == 0: 
  48                 raise ExtractorError('Unable to extract video url') 
  49             videos 
= [(int(m
.group(1)), m
.group(2)) for m 
in m_levels
] 
  50             (_
, video_url
) = sorted(videos
)[0] 
  51             video_url 
= video_url
.replace('%252F', '%2F') 
  53             video_url 
= self
._search
_regex
(r
'so.addVariable\("file",encodeURIComponent\("(?P<source>[^"]+)"\)\);', 
  62             'player_url': embed_page_url
, 
  63             'age_limit': age_limit
,