]>
 
 
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/spiegel.py 
 
 
 
 
 
 
 
 
   2  from  __future__ 
import  unicode_literals
 
   6  from  . common 
import  InfoExtractor
 
  11  from  . spiegeltv 
import  SpiegeltvIE
 
  12  from  .. compat 
import  compat_urlparse
 
  20  class  SpiegelIE ( InfoExtractor
):  
  21      _VALID_URL 
=  r
'https?://(?:www\.)?spiegel\.de/video/[^/]*-(?P<id>[0-9]+)(?:-embed|-iframe)?(?:\.html)?(?:#.*)?$'  
  23          'url' :  'http://www.spiegel.de/video/vulkan-tungurahua-in-ecuador-ist-wieder-aktiv-video-1259285.html' ,  
  24          'md5' :  'b57399839d055fccfeb9a0455c439868' ,  
  28              'title' :  'Vulkanausbruch in Ecuador: Der "Feuerschlund" ist wieder aktiv' ,  
  29              'description' :  'md5:8029d8310232196eb235d27575a8b9f4' ,  
  31              'upload_date' :  '20130311' ,  
  32              'timestamp' :  1362994320 ,  
  35          'url' :  'http://www.spiegel.de/video/schach-wm-videoanalyse-des-fuenften-spiels-video-1309159.html' ,  
  36          'md5' :  '5b6c2f4add9d62912ed5fc78a1faed80' ,  
  40              'title' :  'Schach-WM in der Videoanalyse: Carlsen nutzt die Fehlgriffe des Titelverteidigers' ,  
  41              'description' :  'md5:c2322b65e58f385a820c10fa03b2d088' ,  
  43              'upload_date' :  '20131115' ,  
  44              'timestamp' :  1384546642 ,  
  47          'url' :  'http://www.spiegel.de/video/astronaut-alexander-gerst-von-der-iss-station-beantwortet-fragen-video-1519126-embed.html' ,  
  48          'md5' :  '97b91083a672d72976faa8433430afb9' ,  
  52              'description' :  'SPIEGEL ONLINE-Nutzer durften den deutschen Astronauten Alexander Gerst über sein Leben auf der ISS-Station befragen. Hier kommen seine Antworten auf die besten sechs Fragen.' ,  
  53              'title' :  'Fragen an Astronaut Alexander Gerst: "Bekommen Sie die Tageszeiten mit?"' ,  
  54              'upload_date' :  '20140904' ,  
  55              'timestamp' :  1409834160 ,  
  58          'url' :  'http://www.spiegel.de/video/astronaut-alexander-gerst-von-der-iss-station-beantwortet-fragen-video-1519126-iframe.html' ,  
  59          'only_matching' :  True ,  
  62          'url' :  'http://www.spiegel.de/video/spiegel-tv-magazin-ueber-guellekrise-in-schleswig-holstein-video-99012776.html' ,  
  63          'only_matching' :  True ,  
  66      def  _real_extract ( self
,  url
):  
  67          video_id 
=  self
._ match
_ id
( url
)  
  68          metadata_url 
=  'http://www.spiegel.de/video/metadata/video- %s .json'  %  video_id
 
  69          handle 
=  self
._ request
_ webpage
( metadata_url
,  video_id
)  
  71          # 302 to spiegel.tv, like http://www.spiegel.de/video/der-film-zum-wochenende-die-wahrheit-ueber-maenner-video-99003272.html  
  72          if  SpiegeltvIE
. suitable ( handle
. geturl ()):  
  73              return  self
. url_result ( handle
. geturl (),  'Spiegeltv' )  
  75          video_data 
=  self
._ parse
_ json
( self
._ webpage
_ read
_ content
(  
  76              handle
,  metadata_url
,  video_id
),  video_id
)  
  77          title 
=  video_data
[ 'title' ]  
  78          nexx_id 
=  video_data
[ 'nexxOmniaId' ]  
  79          domain_id 
=  video_data
. get ( 'nexxOmniaDomain' )  or  '748'  
  82              '_type' :  'url_transparent' ,  
  84              'url' :  'nexx: %s : %s '  % ( domain_id
,  nexx_id
),  
  86              'description' :  strip_or_none ( video_data
. get ( 'teaser' )),  
  87              'duration' :  parse_duration ( video_data
. get ( 'duration' )),  
  88              'timestamp' :  unified_timestamp ( video_data
. get ( 'datum' )),  
  89              'ie_key' :  NexxIE
. ie_key (),  
  93  class  SpiegelArticleIE ( InfoExtractor
):  
  94      _VALID_URL 
=  r
'https?://(?:www\.)?spiegel\.de/(?!video/)[^?#]*?-(?P<id>[0-9]+)\.html'  
  95      IE_NAME 
=  'Spiegel:Article'  
  96      IE_DESC 
=  'Articles on spiegel.de'  
  98          'url' :  'http://www.spiegel.de/sport/sonst/badminton-wm-die-randsportart-soll-populaerer-werden-a-987092.html' ,  
 102              'title' :  'Faszination Badminton: Nennt es bloß nicht Federball' ,  
 103              'description' :  're:^Patrick Kämnitz gehört.{100,}' ,  
 104              'upload_date' :  '20140825' ,  
 107          'url' :  'http://www.spiegel.de/wissenschaft/weltall/astronaut-alexander-gerst-antwortet-spiegel-online-lesern-a-989876.html' ,  
 114          'url' :  'http://www.spiegel.de/sptv/spiegeltv/spiegel-tv-ueber-schnellste-katapult-achterbahn-der-welt-taron-a-1137884.html' ,  
 118              'title' :  'Nervenkitzel Achterbahn' ,  
 119              'alt_title' :  'Karussellbauer in Deutschland' ,  
 120              'description' :  'md5:ffe7b1cc59a01f585e0569949aef73cc' ,  
 121              'release_year' :  2005 ,  
 122              'creator' :  'SPIEGEL TV' ,  
 123              'thumbnail' :  r
're:^https?://.*\.jpg$' ,  
 125              'timestamp' :  1394021479 ,  
 126              'upload_date' :  '20140305' ,  
 129              'format' :  'bestvideo' ,  
 130              'skip_download' :  True ,  
 134      def  _real_extract ( self
,  url
):  
 135          video_id 
=  self
._ match
_ id
( url
)  
 136          webpage 
=  self
._ download
_ webpage
( url
,  video_id
)  
 138          # Single video on top of the page  
 139          video_link 
=  self
._ search
_ regex
(  
 140              r
'<a href="([^"]+)" onclick="return spOpenVideo\(this,' ,  webpage
,  
 141              'video page URL' ,  default
= None )  
 143              video_url 
=  compat_urlparse
. urljoin (  
 144                  self
. http_scheme () +  '//spiegel.de/' ,  video_link
)  
 145              return  self
. url_result ( video_url
)  
 147          # Multiple embedded videos  
 149              r
'<div class="vid_holder[0-9]+.*?</div>\s*.*?url\s*=\s*"([^"]+)"' ,  
 152              self
. url_result ( compat_urlparse
. urljoin (  
 153                  self
. http_scheme () +  '//spiegel.de/' ,  embed_path
))  
 154              for  embed_path 
in  embeds
]  
 156              return  self
. playlist_result ( entries
)  
 158          return  self
. playlist_from_matches (  
 159              NexxEmbedIE
._ extract
_u rls
( webpage
),  ie
= NexxEmbedIE
. ie_key ())