|
|
@ -355,12 +355,10 @@ class DiscoveryPlusBaseIE(DPlayBaseIE):
|
|
|
|
video_id, headers=headers, data=json.dumps({
|
|
|
|
video_id, headers=headers, data=json.dumps({
|
|
|
|
'deviceInfo': {
|
|
|
|
'deviceInfo': {
|
|
|
|
'adBlocker': False,
|
|
|
|
'adBlocker': False,
|
|
|
|
|
|
|
|
'drmSupported': False,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'videoId': video_id,
|
|
|
|
'videoId': video_id,
|
|
|
|
'wisteriaProperties': {
|
|
|
|
'wisteriaProperties': {},
|
|
|
|
'platform': 'desktop',
|
|
|
|
|
|
|
|
'product': self._PRODUCT,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}).encode('utf-8'))['data']['attributes']['streaming']
|
|
|
|
}).encode('utf-8'))['data']['attributes']['streaming']
|
|
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
def _real_extract(self, url):
|
|
|
@ -878,10 +876,31 @@ class DiscoveryPlusIndiaIE(DiscoveryPlusBaseIE):
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DiscoveryNetworksDeIE(DPlayBaseIE):
|
|
|
|
class DiscoveryNetworksDeIE(DiscoveryPlusBaseIE):
|
|
|
|
_VALID_URL = r'https?://(?:www\.)?(?P<domain>(?:tlc|dmax)\.de|dplay\.co\.uk)/(?:programme|show|sendungen)/(?P<programme>[^/]+)/(?:video/)?(?P<alternate_id>[^/]+)'
|
|
|
|
_VALID_URL = r'https?://(?:www\.)?(?P<domain>(?:tlc|dmax)\.de|dplay\.co\.uk)/(?:programme|show|sendungen)/(?P<programme>[^/]+)/(?:video/)?(?P<alternate_id>[^/]+)'
|
|
|
|
|
|
|
|
|
|
|
|
_TESTS = [{
|
|
|
|
_TESTS = [{
|
|
|
|
|
|
|
|
'url': 'https://dmax.de/sendungen/goldrausch-in-australien/german-gold',
|
|
|
|
|
|
|
|
'info_dict': {
|
|
|
|
|
|
|
|
'id': '4756322',
|
|
|
|
|
|
|
|
'ext': 'mp4',
|
|
|
|
|
|
|
|
'title': 'German Gold',
|
|
|
|
|
|
|
|
'description': 'md5:f3073306553a8d9b40e6ac4cdbf09fc6',
|
|
|
|
|
|
|
|
'display_id': 'goldrausch-in-australien/german-gold',
|
|
|
|
|
|
|
|
'episode': 'Episode 1',
|
|
|
|
|
|
|
|
'episode_number': 1,
|
|
|
|
|
|
|
|
'season': 'Season 5',
|
|
|
|
|
|
|
|
'season_number': 5,
|
|
|
|
|
|
|
|
'series': 'Goldrausch in Australien',
|
|
|
|
|
|
|
|
'duration': 2648.0,
|
|
|
|
|
|
|
|
'upload_date': '20230517',
|
|
|
|
|
|
|
|
'timestamp': 1684357500,
|
|
|
|
|
|
|
|
'creators': ['DMAX'],
|
|
|
|
|
|
|
|
'thumbnail': 'https://eu1-prod-images.disco-api.com/2023/05/09/f72fb510-7992-3b12-af7f-f16a2c22d1e3.jpeg',
|
|
|
|
|
|
|
|
'tags': ['schatzsucher', 'schatz', 'nugget', 'bodenschätze', 'down under', 'australien', 'goldrausch'],
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
'params': {'skip_download': 'm3u8'},
|
|
|
|
|
|
|
|
}, {
|
|
|
|
'url': 'https://www.tlc.de/programme/breaking-amish/video/die-welt-da-drauen/DCB331270001100',
|
|
|
|
'url': 'https://www.tlc.de/programme/breaking-amish/video/die-welt-da-drauen/DCB331270001100',
|
|
|
|
'info_dict': {
|
|
|
|
'info_dict': {
|
|
|
|
'id': '78867',
|
|
|
|
'id': '78867',
|
|
|
@ -901,9 +920,7 @@ class DiscoveryNetworksDeIE(DPlayBaseIE):
|
|
|
|
'season_number': 1,
|
|
|
|
'season_number': 1,
|
|
|
|
'thumbnail': r're:https://.+\.jpg',
|
|
|
|
'thumbnail': r're:https://.+\.jpg',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'params': {
|
|
|
|
'skip': '404 Not Found',
|
|
|
|
'skip_download': True,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}, {
|
|
|
|
}, {
|
|
|
|
'url': 'https://www.dmax.de/programme/dmax-highlights/video/tuning-star-sidney-hoffmann-exklusiv-bei-dmax/191023082312316',
|
|
|
|
'url': 'https://www.dmax.de/programme/dmax-highlights/video/tuning-star-sidney-hoffmann-exklusiv-bei-dmax/191023082312316',
|
|
|
|
'only_matching': True,
|
|
|
|
'only_matching': True,
|
|
|
@ -920,8 +937,14 @@ class DiscoveryNetworksDeIE(DPlayBaseIE):
|
|
|
|
country = 'GB' if domain == 'dplay.co.uk' else 'DE'
|
|
|
|
country = 'GB' if domain == 'dplay.co.uk' else 'DE'
|
|
|
|
realm = 'questuk' if country == 'GB' else domain.replace('.', '')
|
|
|
|
realm = 'questuk' if country == 'GB' else domain.replace('.', '')
|
|
|
|
return self._get_disco_api_info(
|
|
|
|
return self._get_disco_api_info(
|
|
|
|
url, '%s/%s' % (programme, alternate_id),
|
|
|
|
url, f'{programme}/{alternate_id}', 'eu1-prod.disco-api.com', realm, country)
|
|
|
|
'sonic-eu1-prod.disco-api.com', realm, country)
|
|
|
|
|
|
|
|
|
|
|
|
def _update_disco_api_headers(self, headers, disco_base, display_id, realm):
|
|
|
|
|
|
|
|
headers.update({
|
|
|
|
|
|
|
|
'x-disco-params': f'realm={realm}',
|
|
|
|
|
|
|
|
'x-disco-client': 'Alps:HyogaPlayer:0.0.0',
|
|
|
|
|
|
|
|
'Authorization': self._get_auth(disco_base, display_id, realm),
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DiscoveryPlusShowBaseIE(DPlayBaseIE):
|
|
|
|
class DiscoveryPlusShowBaseIE(DPlayBaseIE):
|
|
|
|