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