]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/ndr.py
0650f956481c9011032a278fc1a9375b98e26539
   2 from __future__ 
import unicode_literals
 
   6 from .common 
import InfoExtractor
 
   7 from ..utils 
import ExtractorError
 
  10 class NDRIE(InfoExtractor
): 
  12     IE_DESC 
= 'NDR.de - Mediathek' 
  13     _VALID_URL 
= r
'https?://www\.ndr\.de/.+?(?P<id>\d+)\.html' 
  17             'url': 'http://www.ndr.de/fernsehen/sendungen/markt/markt7959.html', 
  18             'md5': 'e7a6079ca39d3568f4996cb858dd6708', 
  23                 'title': 'Markt - die ganze Sendung', 
  24                 'description': 'md5:af9179cf07f67c5c12dc6d9997e05725', 
  29             'url': 'http://www.ndr.de/info/audio51535.html', 
  30             'md5': 'bb3cd38e24fbcc866d13b50ca59307b8', 
  35                 'title': 'La Valette entgeht der Hinrichtung', 
  36                 'description': 'md5:22f9541913a40fe50091d5cdd7c9f536', 
  42     def _real_extract(self
, url
): 
  43         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  44         video_id 
= mobj
.group('id') 
  46         page 
= self
._download
_webpage
(url
, video_id
, 'Downloading page') 
  48         title 
= self
._og
_search
_title
(page
) 
  49         description 
= self
._og
_search
_description
(page
) 
  52             r
'<div class="duration"><span class="min">(?P<minutes>\d+)</span>:<span class="sec">(?P<seconds>\d+)</span></div>', 
  54         duration 
= int(mobj
.group('minutes')) * 60 + int(mobj
.group('seconds')) if mobj 
else None 
  58         mp3_url 
= re
.search(r
'''{src:'(?P<audio>[^']+)', type:"audio/mp3"},''', page
) 
  61                 'url': mp3_url
.group('audio'), 
  67         video_url 
= re
.search(r
'''3: {src:'(?P<video>.+?)\.hi\.mp4', type:"video/mp4"},''', page
) 
  69             thumbnail 
= self
._html
_search
_regex
(r
'(?m)title: "NDR PLAYER",\s*poster: "([^"]+)",', 
  70                 page
, 'thumbnail', fatal
=False) 
  72                 thumbnail 
= 'http://www.ndr.de' + thumbnail
 
  73             for format_id 
in ['lo', 'hi', 'hq']: 
  75                     'url': '%s.%s.mp4' % (video_url
.group('video'), format_id
), 
  76                     'format_id': format_id
, 
  80             raise ExtractorError('No media links available for %s' % video_id
) 
  85             'description': description
, 
  86             'thumbnail': thumbnail
,