]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/discoverynetworks.py
   2 from __future__ 
import unicode_literals
 
   6 from .brightcove 
import BrightcoveLegacyIE
 
   7 from .dplay 
import DPlayIE
 
  12 from ..utils 
import smuggle_url
 
  15 class DiscoveryNetworksDeIE(DPlayIE
): 
  16     _VALID_URL 
= r
'''(?x)https?://(?:www\.)?(?P<site>discovery|tlc|animalplanet|dmax)\.de/ 
  19                            (?:[^/]+/)*videos/(?P<display_id>[^/?#]+)| 
  20                            programme/(?P<programme>[^/]+)/video/(?P<alternate_id>[^/]+) 
  24         'url': 'http://www.tlc.de/sendungen/breaking-amish/videos/#3235167922001', 
  26             'id': '3235167922001', 
  28             'title': 'Breaking Amish: Die Welt da draußen', 
  30                 'Vier Amische und eine Mennonitin wagen in New York' 
  31                 '  den Sprung in ein komplett anderes Leben. Begleitet sie auf' 
  32                 ' ihrem spannenden Weg.'), 
  33             'timestamp': 1396598084, 
  34             'upload_date': '20140404', 
  35             'uploader_id': '1659832546', 
  38         'url': 'http://www.dmax.de/programme/storage-hunters-uk/videos/storage-hunters-uk-episode-6/', 
  39         'only_matching': True, 
  41         'url': 'http://www.discovery.de/#5332316765001', 
  42         'only_matching': True, 
  44     BRIGHTCOVE_URL_TEMPLATE 
= 'http://players.brightcove.net/1659832546/default_default/index.html?videoId=%s' 
  46     def _real_extract(self
, url
): 
  47         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  48         alternate_id 
= mobj
.group('alternate_id') 
  50             self
._initialize
_geo
_bypass
({ 
  53             return self
._get
_disco
_api
_info
( 
  54                 url
, '%s/%s' % (mobj
.group('programme'), alternate_id
), 
  55                 'sonic-eu1-prod.disco-api.com', mobj
.group('site') + 'de') 
  56         brightcove_id 
= mobj
.group('id') 
  58             title 
= mobj
.group('title') 
  59             webpage 
= self
._download
_webpage
(url
, title
) 
  60             brightcove_legacy_url 
= BrightcoveLegacyIE
._extract
_brightcove
_url
(webpage
) 
  61             brightcove_id 
= compat_parse_qs(compat_urlparse
.urlparse( 
  62                 brightcove_legacy_url
).query
)['@videoPlayer'][0] 
  63         return self
.url_result(smuggle_url( 
  64             self
.BRIGHTCOVE_URL_TEMPLATE 
% brightcove_id
, {'geo_countries': ['DE']}), 
  65             'BrightcoveNew', brightcove_id
)