[extractor/generic] Add support for ISM manifests
authorSergey M․ <dstftw@gmail.com>
Tue, 1 Nov 2016 20:01:13 +0000 (03:01 +0700)
committerSergey M․ <dstftw@gmail.com>
Tue, 1 Nov 2016 20:01:13 +0000 (03:01 +0700)
ChangeLog
youtube_dl/extractor/generic.py

index c80828512aa78c3974625c90f2ae5f3a6eecf8ff..ec26e0c8d8e595d0dd368cfd79b744218d623468 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+version <unreleased>
+
+Extractors
++ [generic] Add support for ISM manifests
+
+
 version 2016.11.02
 
 Core
index 15d1c0225f882184c1871e9b2fba796181871c61..fc3d01eede508576592f60d18f4fea10b9298645 100644 (file)
@@ -1634,6 +1634,10 @@ class GenericIE(InfoExtractor):
             doc = compat_etree_fromstring(webpage.encode('utf-8'))
             if doc.tag == 'rss':
                 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):
                 smil = self._parse_smil(doc, url, video_id)
                 self._sort_formats(smil['formats'])
@@ -2449,6 +2453,8 @@ class GenericIE(InfoExtractor):
                 entry_info_dict['formats'] = self._extract_mpd_formats(video_url, video_id)
             elif ext == 'f4m':
                 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:
                 entry_info_dict['url'] = video_url