aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor/discovery.py
diff options
context:
space:
mode:
authorRemita Amine <remitamine@gmail.com>2019-08-02 18:08:26 +0100
committerRemita Amine <remitamine@gmail.com>2019-08-02 18:08:26 +0100
commit995f319b0605188d145c78b88319d38b69130132 (patch)
treea09aa5e239b2134ec425d008f08cde928a402076 /youtube_dl/extractor/discovery.py
parentd9d3a5a816253f14ee33623662690293365013e0 (diff)
[discovery] limit video data by show slug(closes #21980)
Diffstat (limited to 'youtube_dl/extractor/discovery.py')
-rw-r--r--youtube_dl/extractor/discovery.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/youtube_dl/extractor/discovery.py b/youtube_dl/extractor/discovery.py
index c4b90cd90..6287ca685 100644
--- a/youtube_dl/extractor/discovery.py
+++ b/youtube_dl/extractor/discovery.py
@@ -34,7 +34,7 @@ class DiscoveryIE(DiscoveryGoBaseIE):
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': {
@@ -53,13 +53,17 @@ class DiscoveryIE(DiscoveryGoBaseIE):
}, {
'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):
- 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)
@@ -91,6 +95,7 @@ class DiscoveryIE(DiscoveryGoBaseIE):
display_id, 'Downloading content JSON metadata',
headers=headers, query={
'slug': display_id,
+ 'show_slug': show_slug,
})[0]
video_id = video['id']
stream = self._download_json(