]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/spiegel.py
   1 from __future__ 
import unicode_literals
 
   5 from .common 
import InfoExtractor
 
   8 class SpiegelIE(InfoExtractor
): 
   9     _VALID_URL 
= r
'https?://(?:www\.)?spiegel\.de/video/[^/]*-(?P<videoID>[0-9]+)(?:\.html)?(?:#.*)?$' 
  11         'url': 'http://www.spiegel.de/video/vulkan-tungurahua-in-ecuador-ist-wieder-aktiv-video-1259285.html', 
  12         'file': '1259285.mp4', 
  13         'md5': '2c2754212136f35fb4b19767d242f66e', 
  15             'title': 'Vulkanausbruch in Ecuador: Der "Feuerschlund" ist wieder aktiv', 
  19         'url': 'http://www.spiegel.de/video/schach-wm-videoanalyse-des-fuenften-spiels-video-1309159.html', 
  20         'file': '1309159.mp4', 
  21         'md5': 'f2cdf638d7aa47654e251e1aee360af1', 
  23             'title': 'Schach-WM in der Videoanalyse: Carlsen nutzt die Fehlgriffe des Titelverteidigers', 
  27     def _real_extract(self
, url
): 
  28         m 
= re
.match(self
._VALID
_URL
, url
) 
  29         video_id 
= m
.group('videoID') 
  31         webpage 
= self
._download
_webpage
(url
, video_id
) 
  33         video_title 
= self
._html
_search
_regex
( 
  34             r
'<div class="module-title">(.*?)</div>', webpage
, 'title') 
  36         xml_url 
= 'http://video2.spiegel.de/flash/' + video_id 
+ '.xml' 
  37         idoc 
= self
._download
_xml
( 
  39             note
='Downloading XML', errnote
='Failed to download XML') 
  43                 'format_id': n
.tag
.rpartition('type')[2], 
  44                 'url': 'http://video2.spiegel.de/flash/' + n
.find('./filename').text
, 
  45                 'width': int(n
.find('./width').text
), 
  46                 'height': int(n
.find('./height').text
), 
  47                 'abr': int(n
.find('./audiobitrate').text
), 
  48                 'vbr': int(n
.find('./videobitrate').text
), 
  49                 'vcodec': n
.find('./codec').text
, 
  53             # Blacklist type 6, it's extremely LQ and not available on the same server 
  54             if n
.tag
.startswith('type') and n
.tag 
!= 'type6' 
  56         duration 
= float(idoc
[0].findall('./duration')[0].text
) 
  58         self
._sort
_formats
(formats
)