[extractor/generic] Add support for ISM manifests

This commit is contained in:
Sergey M․ 2016-11-02 03:01:13 +07:00
parent 8956d6608a
commit cc99a77ac1
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,9 @@
version <unreleased>
Extractors
+ [generic] Add support for ISM manifests
version 2016.11.02 version 2016.11.02
Core Core

View File

@ -1634,6 +1634,10 @@ def _real_extract(self, url):
doc = compat_etree_fromstring(webpage.encode('utf-8')) doc = compat_etree_fromstring(webpage.encode('utf-8'))
if doc.tag == 'rss': if doc.tag == 'rss':
return self._extract_rss(url, video_id, doc) return self._extract_rss(url, video_id, doc)
elif doc.tag == 'SmoothStreamingMedia':
info_dict['formats'] = self._parse_ism_formats(doc, url)
self._sort_formats(info_dict['formats'])
return info_dict
elif re.match(r'^(?:{[^}]+})?smil$', doc.tag): elif re.match(r'^(?:{[^}]+})?smil$', doc.tag):
smil = self._parse_smil(doc, url, video_id) smil = self._parse_smil(doc, url, video_id)
self._sort_formats(smil['formats']) self._sort_formats(smil['formats'])
@ -2449,6 +2453,8 @@ def filter_video(urls):
entry_info_dict['formats'] = self._extract_mpd_formats(video_url, video_id) entry_info_dict['formats'] = self._extract_mpd_formats(video_url, video_id)
elif ext == 'f4m': elif ext == 'f4m':
entry_info_dict['formats'] = self._extract_f4m_formats(video_url, video_id) entry_info_dict['formats'] = self._extract_f4m_formats(video_url, video_id)
elif re.search(r'(?i)\.ism/manifest', video_url):
entry_info_dict['formats'] = self._extract_ism_formats(video_url, video_id)
else: else:
entry_info_dict['url'] = video_url entry_info_dict['url'] = video_url