Compare commits

..

No commits in common. "f0208dc9661223f8299b0fe0032084ba95038ba3" and "2fecc5c4f34cfa8b926746f2418c2939ad7ad9ee" have entirely different histories.

View File

@ -3,14 +3,13 @@ import re
from .common import InfoExtractor
from ..utils import (
clean_html,
filter_dict,
parse_qs,
remove_end,
traverse_obj,
update_url_query,
urljoin,
)
from urllib.parse import urlparse, urlencode, parse_qs
class MediaStreamBaseIE(InfoExtractor):
_EMBED_BASE_URL = 'https://mdstrm.com/embed'
@ -123,16 +122,36 @@ class MediaStreamIE(MediaStreamBaseIE):
formats, subtitles = [], {}
for video_format in player_config['src']:
if video_format == 'hls':
params = {
'at': 'web-app',
'access_token': traverse_obj(parse_qs(url), ('access_token', 0)),
}
for name, key in (('MDSTRMUID', 'uid'), ('MDSTRMSID', 'sid'), ('MDSTRMPID', 'pid'), ('VERSION', 'av')):
params[key] = self._search_regex(
rf'window\.{name}\s*=\s*["\']([^"\']+)["\'];', webpage, key, default=None)
src = player_config['src'][video_format]
params = {}
fmts, subs = self._extract_m3u8_formats_and_subtitles(
update_url_query(player_config['src'][video_format], filter_dict(params)), video_id)
uid = self._search_regex(r'window\.MDSTRMUID\s*=\s*["\']([^"\']+)["\'];', webpage, 'uid', fatal=False, default=None)
if uid:
params['uid'] = uid
sid = self._search_regex(r'window\.MDSTRMSID\s*=\s*["\']([^"\']+)["\'];', webpage, 'sid', fatal=False, default=None)
if sid:
params['sid'] = sid
pid = self._search_regex(r'window\.MDSTRMPID\s*=\s*["\']([^"\']+)["\'];', webpage, 'pid', fatal=False, default=None)
if pid:
params['pid'] = pid
version = self._search_regex(r'window\.VERSION\s*=\s*["\']([^"\']+)["\'];', webpage, 'version', fatal=False, default=None)
if version:
params['at'] = 'web-app'
params['av'] = version
parsed = urlparse(url)
if len(parsed.query) > 0:
qs = parse_qs(parsed.query)
if 'access_token' in qs and len(qs['access_token']) > 0:
params['access_token'] = qs['access_token'][0]
if len(params):
src = f'{src}?{urlencode(params)}'
fmts, subs = self._extract_m3u8_formats_and_subtitles(src, video_id)
formats.extend(fmts)
self._merge_subtitles(subs, target=subtitles)
elif video_format == 'mpd':