From cbc4c5757d7db2618df55a495819a305d2f70a1b Mon Sep 17 00:00:00 2001 From: Enes Date: Sat, 29 Sep 2018 13:28:56 +0300 Subject: [PATCH 1/3] [dailymotion] fix extraction --- youtube_dl/extractor/dailymotion.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index 040f0bd02..584cb1233 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -171,8 +171,7 @@ class DailymotionIE(DailymotionBaseInfoExtractor): r'__PLAYER_CONFIG__\s*=\s*({.+?});'], webpage, 'player v5', default=None) if player_v5: - player = self._parse_json(player_v5, video_id) - metadata = player['metadata'] + metadata = self._download_json('http://www.dailymotion.com/player/metadata/video/%s?integration=inline&GK_PV5_NEON=1' % video_id, video_id) if metadata.get('error', {}).get('type') == 'password_protected': password = self._downloader.params.get('videopassword') From 927416d06ebec28093269972a4d9322ebbb27cd5 Mon Sep 17 00:00:00 2001 From: Enes Date: Mon, 1 Oct 2018 23:12:22 +0300 Subject: [PATCH 2/3] [dailymotion] fix extraction --- youtube_dl/extractor/dailymotion.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index 584cb1233..33019e8d2 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -24,6 +24,7 @@ from ..utils import ( str_to_int, unescapeHTML, urlencode_postdata, + try_get, ) @@ -171,7 +172,13 @@ class DailymotionIE(DailymotionBaseInfoExtractor): r'__PLAYER_CONFIG__\s*=\s*({.+?});'], webpage, 'player v5', default=None) if player_v5: - metadata = self._download_json('http://www.dailymotion.com/player/metadata/video/%s?integration=inline&GK_PV5_NEON=1' % video_id, video_id) + player = self._parse_json(player_v5, video_id) + metadata = try_get( + player, lambda x: x['metadata']) 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': password = self._downloader.params.get('videopassword') From 7fc0dd05e7a09e839dba73fcc6544e6e8230d883 Mon Sep 17 00:00:00 2001 From: Enes Date: Tue, 2 Oct 2018 21:29:07 +0300 Subject: [PATCH 3/3] [dailymotion] metadata must be dict --- youtube_dl/extractor/dailymotion.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index 33019e8d2..842d9a259 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -174,11 +174,11 @@ class DailymotionIE(DailymotionBaseInfoExtractor): if player_v5: player = self._parse_json(player_v5, video_id) metadata = try_get( - player, lambda x: x['metadata']) or self._download_json( - 'http://www.dailymotion.com/player/metadata/video/%s' % video_id, video_id, query={ - 'integration': 'inline', - 'GK_PV5_NEON': '1', - }) + 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': password = self._downloader.params.get('videopassword')