projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[adobetv] use compat_str
[youtube-dl]
/
youtube_dl
/
extractor
/
dailymotion.py
diff --git
a/youtube_dl/extractor/dailymotion.py
b/youtube_dl/extractor/dailymotion.py
index 2d90b222463678b2c49e096f1133a8753921965f..9cd9ff17d2559a5648e72b1f425ba0aee5ed42b4 100644
(file)
--- a/
youtube_dl/extractor/dailymotion.py
+++ b/
youtube_dl/extractor/dailymotion.py
@@
-96,6
+96,11
@@
class DailymotionIE(DailymotionBaseInfoExtractor):
'uploader': 'HotWaves1012',
'age_limit': 18,
}
'uploader': 'HotWaves1012',
'age_limit': 18,
}
+ },
+ # geo-restricted, player v5
+ {
+ 'url': 'http://www.dailymotion.com/video/xhza0o',
+ 'only_matching': True,
}
]
}
]
@@
-119,11
+124,14
@@
class DailymotionIE(DailymotionBaseInfoExtractor):
webpage, 'comment count', fatal=False))
player_v5 = self._search_regex(
webpage, 'comment count', fatal=False))
player_v5 = self._search_regex(
-
r'playerV5\s*=\s*dmp\.create\([^,]+?,\s*({.+?})\);'
,
+
[r'buildPlayer\(({.+?})\);', r'playerV5\s*=\s*dmp\.create\([^,]+?,\s*({.+?})\);']
,
webpage, 'player v5', default=None)
if player_v5:
player = self._parse_json(player_v5, video_id)
metadata = player['metadata']
webpage, 'player v5', default=None)
if player_v5:
player = self._parse_json(player_v5, video_id)
metadata = player['metadata']
+
+ self._check_error(metadata)
+
formats = []
for quality, media_list in metadata['qualities'].items():
for media in media_list:
formats = []
for quality, media_list in metadata['qualities'].items():
for media in media_list:
@@
-201,9
+209,7
@@
class DailymotionIE(DailymotionBaseInfoExtractor):
'video info', flags=re.MULTILINE),
video_id)
'video info', flags=re.MULTILINE),
video_id)
- if info.get('error') is not None:
- msg = 'Couldn\'t get video, Dailymotion says: %s' % info['error']['title']
- raise ExtractorError(msg, expected=True)
+ self._check_error(info)
formats = []
for (key, format_id) in self._FORMATS:
formats = []
for (key, format_id) in self._FORMATS:
@@
-246,6
+252,11
@@
class DailymotionIE(DailymotionBaseInfoExtractor):
'duration': info['duration']
}
'duration': info['duration']
}
+ def _check_error(self, info):
+ if info.get('error') is not None:
+ raise ExtractorError(
+ '%s said: %s' % (self.IE_NAME, info['error']['title']), expected=True)
+
def _get_subtitles(self, video_id, webpage):
try:
sub_list = self._download_webpage(
def _get_subtitles(self, video_id, webpage):
try:
sub_list = self._download_webpage(