summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2017-05-14 12:47:19 +0700
committerSergey M․ <dstftw@gmail.com>2017-05-14 12:47:19 +0700
commit1c45b7a8a9ac50b87b9b1a540e9d9e875ac22a0b (patch)
tree40c3dd227db02de3869b9684046dc6b6a85cc80f
parent60f5c9fb191b1ffc11e69dece379a8ad2de22207 (diff)
downloadyoutube-dl-1c45b7a8a9ac50b87b9b1a540e9d9e875ac22a0b.tar.gz
youtube-dl-1c45b7a8a9ac50b87b9b1a540e9d9e875ac22a0b.tar.xz
youtube-dl-1c45b7a8a9ac50b87b9b1a540e9d9e875ac22a0b.zip
[dailymail] Fix sources extraction (closes #13057)
-rw-r--r--youtube_dl/extractor/dailymail.py12
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']: