]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/discoveryvr.py
   2 from __future__ 
import unicode_literals
 
   4 from .common 
import InfoExtractor
 
   5 from ..utils 
import parse_duration
 
   8 class DiscoveryVRIE(InfoExtractor
): 
   9     _VALID_URL 
= r
'https?://(?:www\.)?discoveryvr\.com/watch/(?P<id>[^/?#]+)' 
  11         'url': 'http://www.discoveryvr.com/watch/discovery-vr-an-introduction', 
  12         'md5': '32b1929798c464a54356378b7912eca4', 
  14             'id': 'discovery-vr-an-introduction', 
  16             'title': 'Discovery VR - An Introduction', 
  17             'description': 'md5:80d418a10efb8899d9403e61d8790f06', 
  21     def _real_extract(self
, url
): 
  22         display_id 
= self
._match
_id
(url
) 
  23         webpage 
= self
._download
_webpage
(url
, display_id
) 
  25         bootstrap_data 
= self
._search
_regex
( 
  26             r
'root\.DVR\.bootstrapData\s+=\s+"({.+?})";', 
  27             webpage
, 'bootstrap data') 
  28         bootstrap_data 
= self
._parse
_json
( 
  29             bootstrap_data
.encode('utf-8').decode('unicode_escape'), 
  31         videos 
= self
._parse
_json
(bootstrap_data
['videos'], display_id
)['allVideos'] 
  32         video_data 
= next(video 
for video 
in videos 
if video
.get('slug') == display_id
) 
  34         series 
= video_data
.get('showTitle') 
  35         title 
= episode 
= video_data
.get('title') or series
 
  36         if series 
and series 
!= title
: 
  37             title 
= '%s - %s' % (series
, title
) 
  40         for f
, format_id 
in (('cdnUriM3U8', 'mobi'), ('webVideoUrlSd', 'sd'), ('webVideoUrlHd', 'hd')): 
  41             f_url 
= video_data
.get(f
) 
  45                 'format_id': format_id
, 
  51             'display_id': display_id
, 
  53             'description': video_data
.get('description'), 
  54             'thumbnail': video_data
.get('thumbnail'), 
  55             'duration': parse_duration(video_data
.get('runTime')),