浏览代码

[dailymotion] Fix extraction (closes #17699)

Enes 7 年之前
父节点
当前提交
f60b9803a4
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      youtube_dl/extractor/dailymotion.py

+ 7 - 1
youtube_dl/extractor/dailymotion.py

@@ -24,6 +24,7 @@ from ..utils import (
     str_to_int,
     str_to_int,
     unescapeHTML,
     unescapeHTML,
     urlencode_postdata,
     urlencode_postdata,
+    try_get,
 )
 )
 
 
 
 
@@ -172,7 +173,12 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
             webpage, 'player v5', default=None)
             webpage, 'player v5', default=None)
         if player_v5:
         if player_v5:
             player = self._parse_json(player_v5, video_id)
             player = self._parse_json(player_v5, video_id)
-            metadata = player['metadata']
+            metadata = try_get(
+                player, lambda x: x['metadata'], dict) or self._download_json(
+                'http://www.dailymotion.com/player/metadata/video/%s' % video_id, video_id, query={
+                    'integration': 'inline',
+                    'GK_PV5_NEON': '1',
+                })
 
 
             if metadata.get('error', {}).get('type') == 'password_protected':
             if metadata.get('error', {}).get('type') == 'password_protected':
                 password = self._downloader.params.get('videopassword')
                 password = self._downloader.params.get('videopassword')