]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/shared.py
   1 from __future__ 
import unicode_literals
 
   5 from .common 
import InfoExtractor
 
   6 from ..compat 
import compat_urllib_parse
 
  14 class SharedIE(InfoExtractor
): 
  15     IE_DESC 
= 'shared.sx and vivo.sx' 
  16     _VALID_URL 
= r
'http://(?:shared|vivo)\.sx/(?P<id>[\da-z]{10})' 
  19         'url': 'http://shared.sx/0060718775', 
  20         'md5': '106fefed92a8a2adb8c98e6a0652f49b', 
  28         'url': 'http://vivo.sx/d7ddda0e78', 
  29         'md5': '15b3af41be0b4fe01f4df075c2678b2c', 
  38     def _real_extract(self
, url
): 
  39         video_id 
= self
._match
_id
(url
) 
  40         webpage 
= self
._download
_webpage
(url
, video_id
) 
  42         if '>File does not exist<' in webpage
: 
  44                 'Video %s does not exist' % video_id
, expected
=True) 
  46         download_form 
= self
._hidden
_inputs
(webpage
) 
  47         request 
= sanitized_Request( 
  48             url
, compat_urllib_parse
.urlencode(download_form
)) 
  49         request
.add_header('Content-Type', 'application/x-www-form-urlencoded') 
  51         video_page 
= self
._download
_webpage
( 
  52             request
, video_id
, 'Downloading video page') 
  54         video_url 
= self
._html
_search
_regex
( 
  55             r
'data-url="([^"]+)"', video_page
, 'video URL') 
  56         title 
= base64
.b64decode(self
._html
_search
_meta
( 
  57             'full:title', webpage
, 'title').encode('utf-8')).decode('utf-8') 
  58         filesize 
= int_or_none(self
._html
_search
_meta
( 
  59             'full:size', webpage
, 'file size', fatal
=False)) 
  60         thumbnail 
= self
._html
_search
_regex
( 
  61             r
'data-poster="([^"]+)"', video_page
, 'thumbnail', default
=None) 
  69             'thumbnail': thumbnail
,