From c956f4a736a85fcb6de852e3156b2e5ffff31e3e Mon Sep 17 00:00:00 2001 From: thezero Date: Tue, 6 Aug 2019 20:32:00 +0200 Subject: [PATCH] [sproutvideo] Download multiple video in a single webpage --- youtube_dl/extractor/generic.py | 7 ++++--- youtube_dl/extractor/sproutvideo.py | 15 +++++---------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 13dc6f34b..b7b64a0be 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -3214,9 +3214,10 @@ class GenericIE(InfoExtractor): return self.playlist_from_matches( zype_urls, video_id, video_title, ie=ZypeIE.ie_key()) - sproutvideo_url = SproutVideoIE._extract_url(webpage) - if sproutvideo_url: - return self.url_result(sproutvideo_url) + sproutvideo_urls = SproutVideoIE._extract_urls(webpage) + if sproutvideo_urls: + return self.playlist_from_matches( + sproutvideo_urls, video_id, video_title, ie=SproutVideoIE.ie_key()) # Look for HTML5 media entries = self._parse_html5_media_entries(url, webpage, video_id, m3u8_id='hls') diff --git a/youtube_dl/extractor/sproutvideo.py b/youtube_dl/extractor/sproutvideo.py index 1bf87ea9a..85f58d3ba 100644 --- a/youtube_dl/extractor/sproutvideo.py +++ b/youtube_dl/extractor/sproutvideo.py @@ -25,16 +25,11 @@ class SproutVideoIE(InfoExtractor): } @staticmethod - def _extract_url(webpage): - sproutvideo = re.search( - r'(?:(?:https?:|)%s[^\'\"]+)[\'\"]' % SproutVideoIE._NOSCHEMA_URL, webpage) - if sproutvideo: - video_url = sproutvideo.group('url') - # Fix the video URL if the iframe doesn't have a defined schema - if video_url[:2] == '//': - video_url = 'https:' + video_url - return video_url - + def _extract_urls(webpage): + # Fix the video URL if the iframe doesn't have a defined schema + return [sprout.group('url') for sprout in re.finditer( + r'(?:(?:https?:|)%s[^\'\"]+)[\'\"]' % SproutVideoIE._NOSCHEMA_URL, + webpage)] def _real_extract(self, url): video_id = self._match_id(url)