]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/pornoxo.py
   1 from __future__ 
import unicode_literals
 
   5 from .common 
import InfoExtractor
 
  11 class PornoXOIE(InfoExtractor
): 
  12     _VALID_URL 
= r
'https?://(?:www\.)?pornoxo\.com/videos/(?P<id>\d+)/(?P<display_id>[^/]+)\.html' 
  14         'url': 'http://www.pornoxo.com/videos/7564/striptease-from-sexy-secretary.html', 
  15         'md5': '582f28ecbaa9e6e24cb90f50f524ce87', 
  19             'title': 'Striptease From Sexy Secretary!', 
  20             'display_id': 'striptease-from-sexy-secretary', 
  21             'description': 'md5:0ee35252b685b3883f4a1d38332f9980', 
  22             'categories': list,  # NSFW 
  23             'thumbnail': r
're:https?://.*\.jpg$', 
  28     def _real_extract(self
, url
): 
  29         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  30         video_id
, display_id 
= mobj
.groups() 
  32         webpage 
= self
._download
_webpage
(url
, video_id
) 
  33         video_data 
= self
._extract
_jwplayer
_data
(webpage
, video_id
, require_title
=False) 
  35         title 
= self
._html
_search
_regex
( 
  36             r
'<title>([^<]+)\s*-\s*PornoXO', webpage
, 'title') 
  38         view_count 
= str_to_int(self
._html
_search
_regex
( 
  39             r
'[vV]iews:\s*([0-9,]+)', webpage
, 'view count', fatal
=False)) 
  41         categories_str 
= self
._html
_search
_regex
( 
  42             r
'<meta name="description" content=".*featuring\s*([^"]+)"', 
  43             webpage
, 'categories', fatal
=False) 
  45             None if categories_str 
is None 
  46             else categories_str
.split(',')) 
  51             'display_id': display_id
, 
  52             'description': self
._html
_search
_meta
('description', webpage
), 
  53             'categories': categories
, 
  54             'view_count': view_count
,