diff options
Diffstat (limited to 'hypervideo_dl/extractor/mediasite.py')
-rw-r--r-- | hypervideo_dl/extractor/mediasite.py | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/hypervideo_dl/extractor/mediasite.py b/hypervideo_dl/extractor/mediasite.py index fbf9223..fe549c4 100644 --- a/hypervideo_dl/extractor/mediasite.py +++ b/hypervideo_dl/extractor/mediasite.py @@ -1,6 +1,3 @@ -# coding: utf-8 -from __future__ import unicode_literals - import re import json @@ -16,7 +13,7 @@ from ..utils import ( str_or_none, try_call, try_get, - unescapeHTML, + smuggle_url, unsmuggle_url, url_or_none, urljoin, @@ -28,6 +25,7 @@ _ID_RE = r'(?:[0-9a-f]{32,34}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0 class MediasiteIE(InfoExtractor): _VALID_URL = r'(?xi)https?://[^/]+/Mediasite/(?:Play|Showcase/[^/#?]+/Presentation)/(?P<id>%s)(?P<query>\?[^#]+|)' % _ID_RE + _EMBED_REGEX = [r'(?xi)<iframe\b[^>]+\bsrc=(["\'])(?P<url>(?:(?:https?:)?//[^/]+)?/Mediasite/Play/%s(?:\?.*?)?)\1' % _ID_RE] _TESTS = [ { 'url': 'https://hitsmediaweb.h-its.org/mediasite/Play/2db6c271681e4f199af3c60d1f82869b1d', @@ -115,13 +113,10 @@ class MediasiteIE(InfoExtractor): 5: 'video3', } - @staticmethod - def _extract_urls(webpage): - return [ - unescapeHTML(mobj.group('url')) - for mobj in re.finditer( - r'(?xi)<iframe\b[^>]+\bsrc=(["\'])(?P<url>(?:(?:https?:)?//[^/]+)?/Mediasite/Play/%s(?:\?.*?)?)\1' % _ID_RE, - webpage)] + @classmethod + def _extract_embed_urls(cls, url, webpage): + for embed_url in super()._extract_embed_urls(url, webpage): + yield smuggle_url(embed_url, {'UrlReferrer': url}) def __extract_slides(self, *, stream_id, snum, Stream, duration, images): slide_base_url = Stream['SlideBaseUrl'] @@ -269,8 +264,6 @@ class MediasiteIE(InfoExtractor): }) formats.extend(stream_formats) - self._sort_formats(formats) - # XXX: Presentation['Presenters'] # XXX: Presentation['Transcript'] |