diff options
author | Yen Chi Hsuan <[email protected]> | 2015-04-08 19:20:34 +0800 |
---|---|---|
committer | Yen Chi Hsuan <[email protected]> | 2015-04-08 19:20:34 +0800 |
commit | bd7a6478a2db228c7325a48e13e0e699502f56f4 (patch) | |
tree | 8bfdcb565503f4081e11d7a8de53eb0a2a6f833d | |
parent | 4a20c9f628b6038766a76ed1c3e37aa6a2b34718 (diff) | |
download | youtube-dl-bd7a6478a2db228c7325a48e13e0e699502f56f4.tar.gz youtube-dl-bd7a6478a2db228c7325a48e13e0e699502f56f4.zip |
[theplatform] Fix video url extraction (fixes #5340)
In SMIL 2.1, <switch> nodes may be enclosed in <par>. See
http://www.w3.org/TR/SMIL2/smil-timing.html#edef-par
-rw-r--r-- | youtube_dl/extractor/theplatform.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/youtube_dl/extractor/theplatform.py b/youtube_dl/extractor/theplatform.py index 0e3e627f4..a7d060459 100644 --- a/youtube_dl/extractor/theplatform.py +++ b/youtube_dl/extractor/theplatform.py @@ -28,7 +28,7 @@ class ThePlatformIE(InfoExtractor): (?P<config>(?:[^/\?]+/(?:swf|config)|onsite)/select/)? |theplatform:)(?P<id>[^/\?&]+)''' - _TEST = { + _TESTS = [{ # from http://www.metacafe.com/watch/cb-e9I_cZgTgIPd/blackberrys_big_bold_z30/ 'url': 'http://link.theplatform.com/s/dJ5BDC/e9I_cZgTgIPd/meta.smil?format=smil&Tracking=true&mbr=true', 'info_dict': { @@ -42,7 +42,20 @@ class ThePlatformIE(InfoExtractor): # rtmp download 'skip_download': True, }, - } + # from http://www.cnet.com/videos/tesla-model-s-a-second-step-towards-a-cleaner-motoring-future/ + }, { + 'url': 'http://link.theplatform.com/s/kYEXFC/22d_qsQ6MIRT', + 'info_dict': { + 'id': '22d_qsQ6MIRT', + 'ext': 'flv', + 'description': 'md5:ac330c9258c04f9d7512cf26b9595409', + 'title': 'Tesla Model S: A second step towards a cleaner motoring future', + }, + 'params': { + # rtmp download + 'skip_download': True, + } + }] @staticmethod def _sign_url(url, sig_key, sig_secret, life=600, include_qs=False): @@ -126,7 +139,7 @@ class ThePlatformIE(InfoExtractor): formats = self._extract_f4m_formats(f4m_url, video_id) else: formats = [] - switch = body.find(_x('smil:switch')) + switch = body.find(_x('.//smil:switch')) if switch is not None: base_url = head.find(_x('smil:meta')).attrib['base'] for f in switch.findall(_x('smil:video')): |