]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/spiegeltv.py
ef5e7c08bb8ac6f9c90b656b863fbf2bd1cca99a
   2 from __future__ 
import unicode_literals
 
   4 from .common 
import InfoExtractor
 
   5 from ..utils 
import float_or_none
 
   8 class SpiegeltvIE(InfoExtractor
): 
   9     _VALID_URL 
= r
'https?://(?:www\.)?spiegel\.tv/(?:#/)?filme/(?P<id>[\-a-z0-9]+)' 
  11         'url': 'http://www.spiegel.tv/filme/flug-mh370/', 
  15             'title': 'Flug MH370', 
  16             'description': 'Das Rätsel um die Boeing 777 der Malaysia-Airlines', 
  17             'thumbnail': 're:http://.*\.jpg$', 
  21             'skip_download': True, 
  24         'url': 'http://www.spiegel.tv/#/filme/alleskino-die-wahrheit-ueber-maenner/', 
  25         'only_matching': True, 
  28     def _real_extract(self
, url
): 
  30             url 
= url
.replace('/#/', '/') 
  31         video_id 
= self
._match
_id
(url
) 
  32         webpage 
= self
._download
_webpage
(url
, video_id
) 
  33         title 
= self
._html
_search
_regex
(r
'<h1.*?>(.*?)</h1>', webpage
, 'title') 
  35         apihost 
= 'http://spiegeltv-ivms2-restapi.s3.amazonaws.com' 
  36         version_json 
= self
._download
_json
( 
  37             '%s/version.json' % apihost
, video_id
, 
  38             note
='Downloading version information') 
  39         version_name 
= version_json
['version_name'] 
  41         slug_json 
= self
._download
_json
( 
  42             '%s/%s/restapi/slugs/%s.json' % (apihost
, version_name
, video_id
), 
  44             note
='Downloading object information') 
  45         oid 
= slug_json
['object_id'] 
  47         media_json 
= self
._download
_json
( 
  48             '%s/%s/restapi/media/%s.json' % (apihost
, version_name
, oid
), 
  49             video_id
, note
='Downloading media information') 
  50         uuid 
= media_json
['uuid'] 
  51         is_wide 
= media_json
['is_wide'] 
  53         server_json 
= self
._download
_json
( 
  54             'http://www.spiegel.tv/streaming_servers/', video_id
, 
  55             note
='Downloading server information') 
  56         server 
= server_json
[0]['endpoint'] 
  59         for image 
in media_json
['images']: 
  62                 'width': image
['width'], 
  63                 'height': image
['height'], 
  66         description 
= media_json
['subtitle'] 
  67         duration 
= float_or_none(media_json
.get('duration_in_ms'), scale
=1000) 
  68         format 
= '16x9' if is_wide 
else '4x3' 
  70         url 
= server 
+ 'mp4:' + uuid 
+ '_spiegeltv_0500_' + format 
+ '.m4v' 
  77             'description': description
, 
  79             'thumbnails': thumbnails