]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/nrk.py
3a6a7883e31f2ff309157f0e4d27765ef98fdf1b
   2 from __future__ 
import unicode_literals
 
   6 from .common 
import InfoExtractor
 
  14 class NRKIE(InfoExtractor
): 
  15     _VALID_URL 
= r
'http://(?:www\.)?nrk\.no/(?:video|lyd)/[^/]+/(?P<id>[\dA-F]{16})' 
  19             'url': 'http://www.nrk.no/video/dompap_og_andre_fugler_i_piip_show/D0FA54B5C8B6CE59/emne/piipshow/', 
  20             'md5': 'a6eac35052f3b242bb6bb7f43aed5886', 
  24                 'title': 'Dompap og andre fugler i Piip-Show', 
  25                 'description': 'md5:d9261ba34c43b61c812cb6b0269a5c8f' 
  29             'url': 'http://www.nrk.no/lyd/lyd_av_oppleser_for_blinde/AEFDDD5473BA0198/', 
  30             'md5': '3471f2a51718195164e88f46bf427668', 
  34                 'title': 'Slik høres internett ut når du er blind', 
  35                 'description': 'md5:a621f5cc1bd75c8d5104cb048c6b8568', 
  40     def _real_extract(self
, url
): 
  41         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  42         video_id 
= mobj
.group('id') 
  44         page 
= self
._download
_webpage
(url
, video_id
) 
  46         video_id 
= self
._html
_search
_regex
(r
'<div class="nrk-video" data-nrk-id="(\d+)">', page
, 'video id') 
  48         data 
= self
._download
_json
( 
  49             'http://v7.psapi.nrk.no/mediaelement/%s' % video_id
, video_id
, 'Downloading media JSON') 
  51         if data
['usageRights']['isGeoBlocked']: 
  52             raise ExtractorError('NRK har ikke rettig-heter til å vise dette programmet utenfor Norge', expected
=True) 
  54         video_url 
= data
['mediaUrl'] + '?hdcore=3.1.1&plugin=aasp-3.1.1.69.124' 
  56         images 
= data
.get('images') 
  58             thumbnails 
= images
['webImages'] 
  59             thumbnails
.sort(key
=lambda image
: image
['pixelWidth']) 
  60             thumbnail 
= thumbnails
[-1]['imageUrl'] 
  68             'title': data
['title'], 
  69             'description': data
['description'], 
  70             'thumbnail': thumbnail
, 
  74 class NRKTVIE(InfoExtractor
): 
  75     _VALID_URL 
= r
'http://tv\.nrk(?:super)?\.no/(?:serie/[^/]+|program)/(?P<id>[a-z]{4}\d{8})' 
  79             'url': 'http://tv.nrk.no/serie/20-spoersmaal-tv/muhh48000314/23-05-2014', 
  80             'md5': '7b96112fbae1faf09a6f9ae1aff6cb84', 
  84                 'title': '20 spørsmål', 
  85                 'description': 'md5:bdea103bc35494c143c6a9acdd84887a', 
  86                 'upload_date': '20140523', 
  91             'url': 'http://tv.nrk.no/program/mdfp15000514', 
  92             'md5': '383650ece2b25ecec996ad7b5bb2a384', 
  96                 'title': 'Kunnskapskanalen: Grunnlovsjubiléet - Stor ståhei for ingenting', 
  97                 'description': 'md5:654c12511f035aed1e42bdf5db3b206a', 
  98                 'upload_date': '20140524', 
 104     def _real_extract(self
, url
): 
 105         mobj 
= re
.match(self
._VALID
_URL
, url
) 
 106         video_id 
= mobj
.group('id') 
 108         page 
= self
._download
_webpage
(url
, video_id
) 
 110         title 
= self
._html
_search
_meta
('title', page
, 'title') 
 111         description 
= self
._html
_search
_meta
('description', page
, 'description') 
 112         thumbnail 
= self
._html
_search
_regex
(r
'data-posterimage="([^"]+)"', page
, 'thumbnail', fatal
=False) 
 113         upload_date 
= unified_strdate(self
._html
_search
_meta
('rightsfrom', page
, 'upload date', fatal
=False)) 
 114         duration 
= self
._html
_search
_regex
(r
'data-duration="([^"]+)"', page
, 'duration', fatal
=False) 
 116             duration 
= float(duration
) 
 120         f4m_url 
= re
.search(r
'data-media="([^"]+)"', page
) 
 123                 'url': f4m_url
.group(1) + '?hdcore=3.1.1&plugin=aasp-3.1.1.69.124', 
 128         m3u8_url 
= re
.search(r
'data-hls-media="([^"]+)"', page
) 
 131                 'url': m3u8_url
.group(1), 
 135         self
._sort
_formats
(formats
) 
 140             'description': description
, 
 141             'thumbnail': thumbnail
, 
 142             'upload_date': upload_date
, 
 143             'duration': duration
,