diff options
author | Sergey M․ <dstftw@gmail.com> | 2017-05-14 12:47:19 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2017-05-14 12:47:19 +0700 |
commit | 1c45b7a8a9ac50b87b9b1a540e9d9e875ac22a0b (patch) | |
tree | 40c3dd227db02de3869b9684046dc6b6a85cc80f | |
parent | 60f5c9fb191b1ffc11e69dece379a8ad2de22207 (diff) |
[dailymail] Fix sources extraction (closes #13057)
-rw-r--r-- | youtube_dl/extractor/dailymail.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/youtube_dl/extractor/dailymail.py b/youtube_dl/extractor/dailymail.py index 98c835bf1..538565c66 100644 --- a/youtube_dl/extractor/dailymail.py +++ b/youtube_dl/extractor/dailymail.py @@ -2,9 +2,11 @@ from __future__ import unicode_literals from .common import InfoExtractor +from ..compat import compat_str from ..utils import ( int_or_none, determine_protocol, + try_get, unescapeHTML, ) @@ -28,8 +30,14 @@ class DailyMailIE(InfoExtractor): video_data = self._parse_json(self._search_regex( r"data-opts='({.+?})'", webpage, 'video data'), video_id) title = unescapeHTML(video_data['title']) - video_sources = self._download_json(video_data.get( - 'sources', {}).get('url') or 'http://www.dailymail.co.uk/api/player/%s/video-sources.json' % video_id, video_id) + + sources_url = (try_get( + video_data, + (lambda x: x['plugins']['sources']['url'], + lambda x: x['sources']['url']), compat_str) or + 'http://www.dailymail.co.uk/api/player/%s/video-sources.json' % video_id) + + video_sources = self._download_json(sources_url, video_id) formats = [] for rendition in video_sources['renditions']: |