projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[youtube] Force old layout (closes #25682, closes #25683, closes #25680, closes ...
[youtube-dl]
/
youtube_dl
/
extractor
/
discovery.py
diff --git
a/youtube_dl/extractor/discovery.py
b/youtube_dl/extractor/discovery.py
index c4b90cd90a3bf7d4e781c1c1414032c3c71dd9a2..e0139cc862d74bc3c20a9d6567747b96b642c730 100644
(file)
--- a/
youtube_dl/extractor/discovery.py
+++ b/
youtube_dl/extractor/discovery.py
@@
-13,8
+13,8
@@
from ..compat import compat_HTTPError
class DiscoveryIE(DiscoveryGoBaseIE):
_VALID_URL = r'''(?x)https?://
(?P<site>
class DiscoveryIE(DiscoveryGoBaseIE):
_VALID_URL = r'''(?x)https?://
(?P<site>
-
(?:(?:www|go)\.)?
discovery|
- (?:www\.)?
+
go\.
discovery|
+ www\.
(?:
investigationdiscovery|
discoverylife|
(?:
investigationdiscovery|
discoverylife|
@@
-22,8
+22,7
@@
class DiscoveryIE(DiscoveryGoBaseIE):
ahctv|
destinationamerica|
sciencechannel|
ahctv|
destinationamerica|
sciencechannel|
- tlc|
- velocity
+ tlc
)|
watch\.
(?:
)|
watch\.
(?:
@@
-34,7
+33,7
@@
class DiscoveryIE(DiscoveryGoBaseIE):
cookingchanneltv|
motortrend
)
cookingchanneltv|
motortrend
)
- )\.com/tv-shows/
[^/]+
/(?:video|full-episode)s/(?P<id>[^./?#]+)'''
+ )\.com/tv-shows/
(?P<show_slug>[^/]+)
/(?:video|full-episode)s/(?P<id>[^./?#]+)'''
_TESTS = [{
'url': 'https://go.discovery.com/tv-shows/cash-cab/videos/riding-with-matthew-perry',
'info_dict': {
_TESTS = [{
'url': 'https://go.discovery.com/tv-shows/cash-cab/videos/riding-with-matthew-perry',
'info_dict': {
@@
-53,13
+52,17
@@
class DiscoveryIE(DiscoveryGoBaseIE):
}, {
'url': 'https://go.discovery.com/tv-shows/alaskan-bush-people/videos/follow-your-own-road',
'only_matching': True,
}, {
'url': 'https://go.discovery.com/tv-shows/alaskan-bush-people/videos/follow-your-own-road',
'only_matching': True,
+ }, {
+ # using `show_slug` is important to get the correct video data
+ 'url': 'https://www.sciencechannel.com/tv-shows/mythbusters-on-science/full-episodes/christmas-special',
+ 'only_matching': True,
}]
_GEO_COUNTRIES = ['US']
_GEO_BYPASS = False
_API_BASE_URL = 'https://api.discovery.com/v1/'
def _real_extract(self, url):
}]
_GEO_COUNTRIES = ['US']
_GEO_BYPASS = False
_API_BASE_URL = 'https://api.discovery.com/v1/'
def _real_extract(self, url):
- site, display_id = re.match(self._VALID_URL, url).groups()
+ site,
show_slug,
display_id = re.match(self._VALID_URL, url).groups()
access_token = None
cookies = self._get_cookies(url)
access_token = None
cookies = self._get_cookies(url)
@@
-79,7
+82,7
@@
class DiscoveryIE(DiscoveryGoBaseIE):
'authRel': 'authorization',
'client_id': '3020a40c2356a645b4b4',
'nonce': ''.join([random.choice(string.ascii_letters) for _ in range(32)]),
'authRel': 'authorization',
'client_id': '3020a40c2356a645b4b4',
'nonce': ''.join([random.choice(string.ascii_letters) for _ in range(32)]),
- 'redirectUri': 'https://
fusion.ddmcdn.com/app/mercury-sdk/180/redirectHandler.html?https://www.%s.com' % site
,
+ 'redirectUri': 'https://
www.discovery.com/'
,
})['access_token']
headers = self.geo_verification_headers()
})['access_token']
headers = self.geo_verification_headers()
@@
-90,7
+93,10
@@
class DiscoveryIE(DiscoveryGoBaseIE):
self._API_BASE_URL + 'content/videos',
display_id, 'Downloading content JSON metadata',
headers=headers, query={
self._API_BASE_URL + 'content/videos',
display_id, 'Downloading content JSON metadata',
headers=headers, query={
+ 'embed': 'show.name',
+ 'fields': 'authenticated,description.detailed,duration,episodeNumber,id,name,parental.rating,season.number,show,tags',
'slug': display_id,
'slug': display_id,
+ 'show_slug': show_slug,
})[0]
video_id = video['id']
stream = self._download_json(
})[0]
video_id = video['id']
stream = self._download_json(