]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/sportdeutschland.py
a9927f6e29d1d52463cefc3503414305bec0e919
   2 from __future__ 
import unicode_literals
 
   6 from .common 
import InfoExtractor
 
  13 class SportDeutschlandIE(InfoExtractor
): 
  14     _VALID_URL 
= r
'https?://sportdeutschland\.tv/(?P<sport>[^/?#]+)/(?P<id>[^?#/]+)(?:$|[?#])' 
  16         'url': 'http://sportdeutschland.tv/badminton/live-li-ning-badminton-weltmeisterschaft-2014-kopenhagen', 
  18             'id': 'live-li-ning-badminton-weltmeisterschaft-2014-kopenhagen', 
  20             'title': 're:Li-Ning Badminton Weltmeisterschaft 2014 Kopenhagen', 
  21             'categories': ['Badminton'], 
  23             'thumbnail': 're:^https?://.*\.jpg$', 
  24             'description': 're:Die Badminton-WM 2014 aus Kopenhagen bei Sportdeutschland\.TV', 
  26             'upload_date': 're:^201408[23][0-9]$', 
  29             'skip_download': 'Live stream', 
  32         'url': 'http://sportdeutschland.tv/li-ning-badminton-wm-2014/lee-li-ning-badminton-weltmeisterschaft-2014-kopenhagen-herren-einzel-wei-vs', 
  34             'id': 'lee-li-ning-badminton-weltmeisterschaft-2014-kopenhagen-herren-einzel-wei-vs', 
  36             'upload_date': '20140825', 
  37             'description': 'md5:60a20536b57cee7d9a4ec005e8687504', 
  38             'timestamp': 1408976060, 
  40             'title': 'Li-Ning Badminton Weltmeisterschaft 2014 Kopenhagen: Herren Einzel, Wei Lee vs. Keun Lee', 
  41             'thumbnail': 're:^https?://.*\.jpg$', 
  43             'categories': ['Li-Ning Badminton WM 2014'], 
  48     def _real_extract(self
, url
): 
  49         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  50         video_id 
= mobj
.group('id') 
  51         sport_id 
= mobj
.group('sport') 
  53         api_url 
= 'http://proxy.vidibusdynamic.net/sportdeutschland.tv/api/permalinks/%s/%s?access_token=true' % ( 
  55         req 
= sanitized_Request(api_url
, headers
={ 
  56             'Accept': 'application/vnd.vidibus.v2.html+json', 
  59         data 
= self
._download
_json
(req
, video_id
) 
  62         categories 
= [data
['section']['title']] 
  65         smil_url 
= asset
['video'] 
  66         if '.smil' in smil_url
: 
  67             m3u8_url 
= smil_url
.replace('.smil', '.m3u8') 
  69                 self
._extract
_m
3u8_formats
(m3u8_url
, video_id
, ext
='mp4')) 
  71             smil_doc 
= self
._download
_xml
( 
  72                 smil_url
, video_id
, note
='Downloading SMIL metadata') 
  73             base_url_el 
= smil_doc
.find('./head/meta') 
  75                 base_url 
= base_url_el
.attrib
['base'] 
  78                 'url': base_url 
if base_url_el 
else n
.attrib
['src'], 
  79                 'play_path': n
.attrib
['src'], 
  82                 'format_note': 'Seems to fail at example stream', 
  83             } for n 
in smil_doc
.findall('./body/video')]) 
  85             formats
.append({'url': smil_url
}) 
  87         self
._sort
_formats
(formats
) 
  92             'title': asset
['title'], 
  93             'thumbnail': asset
.get('image'), 
  94             'description': asset
.get('teaser'), 
  95             'duration': asset
.get('duration'), 
  96             'categories': categories
, 
  97             'view_count': asset
.get('views'), 
  98             'rtmp_live': asset
.get('live'), 
  99             'timestamp': parse_iso8601(asset
.get('date')),