[theplatform] always force theplatform to return a smil for _extract_theplatform_smil
authorremitamine <remitamine@gmail.com>
Fri, 18 Mar 2016 08:21:21 +0000 (09:21 +0100)
committerremitamine <remitamine@gmail.com>
Fri, 18 Mar 2016 08:22:10 +0000 (09:22 +0100)
youtube_dl/extractor/bravotv.py
youtube_dl/extractor/cbsnews.py
youtube_dl/extractor/cnet.py
youtube_dl/extractor/nationalgeographic.py
youtube_dl/extractor/theplatform.py

index 69d00b46602bfcedd74c372580c6f5c72f268890..34d451f385547b80c29a81ca1f2466e6dc84b5f1 100644 (file)
@@ -24,5 +24,5 @@ class BravoTVIE(InfoExtractor):
         account_pid = self._search_regex(r'"account_pid"\s*:\s*"([^"]+)"', webpage, 'account pid')
         release_pid = self._search_regex(r'"release_pid"\s*:\s*"([^"]+)"', webpage, 'release pid')
         return self.url_result(smuggle_url(
-            'http://link.theplatform.com/s/%s/%s?format=SMIL&mbr=true&switch=progressive' % (account_pid, release_pid),
+            'http://link.theplatform.com/s/%s/%s?mbr=true&switch=progressive' % (account_pid, release_pid),
             {'force_smil_url': True}), 'ThePlatform', release_pid)
index 7319ee1b734e6fc30e4cb681f66eb082ffb9622a..8ddcc5097e3bb7b83392e056080846daaab30924 100644 (file)
@@ -78,7 +78,7 @@ class CBSNewsIE(ThePlatformIE):
             pid = item.get('media' + format_id)
             if not pid:
                 continue
-            release_url = 'http://link.theplatform.com/s/dJ5BDC/%s?format=SMIL&mbr=true' % pid
+            release_url = 'http://link.theplatform.com/s/dJ5BDC/%s?mbr=true' % pid
             tp_formats, tp_subtitles = self._extract_theplatform_smil(release_url, video_id, 'Downloading %s SMIL data' % pid)
             formats.extend(tp_formats)
             subtitles = self._merge_subtitles(subtitles, tp_subtitles)
index 3cf0bf95b4386b393df28d46367887c2e7952ae9..c154b3e19a86e2f9327634efdda561fdd3e2defd 100644 (file)
@@ -60,7 +60,7 @@ class CNETIE(ThePlatformIE):
         for (fkey, vid) in vdata['files'].items():
             if fkey == 'hls_phone' and 'hls_tablet' in vdata['files']:
                 continue
-            release_url = 'http://link.theplatform.com/s/kYEXFC/%s?format=SMIL&mbr=true' % vid
+            release_url = 'http://link.theplatform.com/s/kYEXFC/%s?mbr=true' % vid
             if fkey == 'hds':
                 release_url += '&manifest=f4m'
             tp_formats, tp_subtitles = self._extract_theplatform_smil(release_url, video_id, 'Downloading %s SMIL data' % fkey)
index 6fc9e7b050c75ced3262ebad9ba92d74ed6b5d7d..7ce8d9b182ca78401e772ebef5311a37c7819ee0 100644 (file)
@@ -48,7 +48,7 @@ class NationalGeographicIE(InfoExtractor):
         theplatform_id = url_basename(content.attrib.get('url'))
 
         return self.url_result(smuggle_url(
-            'http://link.theplatform.com/s/ngs/%s?format=SMIL&formats=MPEG4&manifest=f4m' % theplatform_id,
+            'http://link.theplatform.com/s/ngs/%s?formats=MPEG4&manifest=f4m' % theplatform_id,
             # For some reason, the normal links don't work and we must force
             # the use of f4m
             {'force_smil_url': True}))
index ffe7c57adfb26b2bfc4ec4c30cbfa0c7cde93ac8..a148f78ce3e60abb429d3cddfa76bc2ad8cff37f 100644 (file)
@@ -22,6 +22,7 @@ from ..utils import (
     xpath_with_ns,
     mimetype2ext,
     find_xpath_attr,
+    update_url_query,
 )
 
 default_ns = 'http://www.w3.org/2005/SMIL21/Language'
@@ -30,6 +31,7 @@ _x = lambda p: xpath_with_ns(p, {'smil': default_ns})
 
 class ThePlatformBaseIE(OnceIE):
     def _extract_theplatform_smil(self, smil_url, video_id, note='Downloading SMIL data'):
+        smil_url = update_url_query(smil_url, {'format': 'SMIL'})
         meta = self._download_xml(smil_url, video_id, note=note)
         error_element = find_xpath_attr(
             meta, _x('.//smil:ref'), 'src',
@@ -213,7 +215,7 @@ class ThePlatformIE(ThePlatformBaseIE):
                 webpage, 'smil url', group='url')
             path = self._search_regex(
                 r'link\.theplatform\.com/s/((?:[^/?#&]+/)+[^/?#&]+)', smil_url, 'path')
-            smil_url += '?' if '?' not in smil_url else '&' + 'formats=m3u,mpeg4&format=SMIL'
+            smil_url += '?' if '?' not in smil_url else '&' + 'formats=m3u,mpeg4'
         elif mobj.group('config'):
             config_url = url + '&form=json'
             config_url = config_url.replace('swf/', 'config/')
@@ -223,9 +225,9 @@ class ThePlatformIE(ThePlatformBaseIE):
                 release_url = config['releaseUrl']
             else:
                 release_url = 'http://link.theplatform.com/s/%s?mbr=true' % path
-            smil_url = release_url + '&format=SMIL&formats=MPEG4&manifest=f4m'
+            smil_url = release_url + '&formats=MPEG4&manifest=f4m'
         else:
-            smil_url = 'http://link.theplatform.com/s/%s/meta.smil?format=smil&mbr=true' % path
+            smil_url = 'http://link.theplatform.com/s/%s?mbr=true' % path
 
         sig = smuggled_data.get('sig')
         if sig:
@@ -280,7 +282,7 @@ class ThePlatformFeedIE(ThePlatformBaseIE):
         first_video_id = None
         duration = None
         for item in entry['media$content']:
-            smil_url = item['plfile$url'] + '&format=SMIL&mbr=true'
+            smil_url = item['plfile$url'] + '&mbr=true'
             cur_video_id = ThePlatformIE._match_id(smil_url)
             if first_video_id is None:
                 first_video_id = cur_video_id