summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-11-02 03:01:13 +0700
committerSergey M․ <dstftw@gmail.com>2016-11-02 03:01:13 +0700
commitcc99a77ac1c5fb5859d75589d49bb25361a1fb2b (patch)
tree3e2aa8f8ab8d06d1ac26933f3733948a143496ad
parent8956d6608a02f8745a8d619b0f697a95e98981c0 (diff)
downloadyoutube-dl-cc99a77ac1c5fb5859d75589d49bb25361a1fb2b.tar.gz
youtube-dl-cc99a77ac1c5fb5859d75589d49bb25361a1fb2b.tar.xz
youtube-dl-cc99a77ac1c5fb5859d75589d49bb25361a1fb2b.zip
[extractor/generic] Add support for ISM manifests
-rw-r--r--ChangeLog6
-rw-r--r--youtube_dl/extractor/generic.py6
2 files changed, 12 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c80828512..ec26e0c8d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+version <unreleased>
+
+Extractors
++ [generic] Add support for ISM manifests
+
+
 version 2016.11.02
 
 Core
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py
index 15d1c0225..fc3d01eed 100644
--- a/youtube_dl/extractor/generic.py
+++ b/youtube_dl/extractor/generic.py
@@ -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