]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/wistia.py
   1 from __future__ 
import unicode_literals
 
   5 from .common 
import InfoExtractor
 
   6 from ..utils 
import ExtractorError
, compat_urllib_request
 
   9 class WistiaIE(InfoExtractor
): 
  10     _VALID_URL 
= r
'https?://(?:fast\.)?wistia\.net/embed/iframe/(?P<id>[a-z0-9]+)' 
  11     _API_URL 
= 'http://fast.wistia.com/embed/medias/{0:}.json' 
  14         'url': 'http://fast.wistia.net/embed/iframe/sh7fpupwlt', 
  15         'md5': 'cafeb56ec0c53c18c97405eecb3133df', 
  19             'title': 'Being Resourceful', 
  24     def _real_extract(self
, url
): 
  25         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  26         video_id 
= mobj
.group('id') 
  28         request 
= compat_urllib_request
.Request(self
._API
_URL
.format(video_id
)) 
  29         request
.add_header('Referer', url
)  # Some videos require this. 
  30         data_json 
= self
._download
_json
(request
, video_id
) 
  31         if data_json
.get('error'): 
  32             raise ExtractorError('Error while getting the playlist', 
  34         data 
= data_json
['media'] 
  38         for atype
, a 
in data
['assets'].items(): 
  42                     'resolution': '%dx%d' % (a
['width'], a
['height']), 
  45             if atype 
== 'preview': 
  51                 'height': a
['height'], 
  52                 'filesize': a
['size'], 
  54                 'preference': 1 if atype 
== 'original' else None, 
  57         self
._sort
_formats
(formats
) 
  61             'title': data
['name'], 
  63             'thumbnails': thumbnails
, 
  64             'duration': data
.get('duration'),