projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make missing test definition fields an error
[youtube-dl]
/
youtube_dl
/
extractor
/
dailymotion.py
diff --git
a/youtube_dl/extractor/dailymotion.py
b/youtube_dl/extractor/dailymotion.py
index 3bd0b862c6551c8f40207f62db2daf964621db47..10b97d8cac732c0902aa67cb738122fbf80c3d83 100644
(file)
--- a/
youtube_dl/extractor/dailymotion.py
+++ b/
youtube_dl/extractor/dailymotion.py
@@
-12,6
+12,7
@@
from ..utils import (
get_element_by_id,
orderedSet,
str_to_int,
get_element_by_id,
orderedSet,
str_to_int,
+ int_or_none,
ExtractorError,
)
ExtractorError,
)
@@
-28,7
+29,7
@@
class DailymotionBaseInfoExtractor(InfoExtractor):
class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
"""Information Extractor for Dailymotion"""
class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
"""Information Extractor for Dailymotion"""
- _VALID_URL = r'(?i)(?:https?://)?(?:
www\.)?dailymotion\.[a-z]{2,3}/(?:embed/)?video/([^/
]+)'
+ _VALID_URL = r'(?i)(?:https?://)?(?:
(www|touch)\.)?dailymotion\.[a-z]{2,3}/(?:(embed|#)/)?video/(?P<id>[^/?_
]+)'
IE_NAME = u'dailymotion'
_FORMATS = [
IE_NAME = u'dailymotion'
_FORMATS = [
@@
-81,7
+82,7
@@
class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
# Extract id and simplified title from URL
mobj = re.match(self._VALID_URL, url)
# Extract id and simplified title from URL
mobj = re.match(self._VALID_URL, url)
- video_id = mobj.group(
1).split('_')[0].split('?')[0]
+ video_id = mobj.group(
'id')
url = 'http://www.dailymotion.com/video/%s' % video_id
url = 'http://www.dailymotion.com/video/%s' % video_id
@@
-101,10
+102,6
@@
class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
self.to_screen(u'Vevo video detected: %s' % vevo_id)
return self.url_result(u'vevo:%s' % vevo_id, ie='Vevo')
self.to_screen(u'Vevo video detected: %s' % vevo_id)
return self.url_result(u'vevo:%s' % vevo_id, ie='Vevo')
- video_uploader = self._search_regex([r'(?im)<span class="owner[^\"]+?">[^<]+?<a [^>]+?>([^<]+?)</a>',
- # Looking for official user
- r'<(?:span|a) .*?rel="author".*?>([^<]+?)</'],
- webpage, 'video uploader', fatal=False)
age_limit = self._rta_search(webpage)
video_upload_date = None
age_limit = self._rta_search(webpage)
video_upload_date = None
@@
-128,7
+125,7
@@
class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
if video_url is not None:
m_size = re.search(r'H264-(\d+)x(\d+)', video_url)
if m_size is not None:
if video_url is not None:
m_size = re.search(r'H264-(\d+)x(\d+)', video_url)
if m_size is not None:
- width, height = m
_size.group(1), m_size.group(2
)
+ width, height = m
ap(int_or_none, (m_size.group(1), m_size.group(2))
)
else:
width, height = None, None
formats.append({
else:
width, height = None, None
formats.append({
@@
-147,13
+144,15
@@
class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
self._list_available_subtitles(video_id, webpage)
return
self._list_available_subtitles(video_id, webpage)
return
- view_count = str_to_int(self._search_regex(
- r'video_views_value[^>]+>([\d\.,]+)<', webpage, u'view count'))
+ view_count = self._search_regex(
+ r'video_views_count[^>]+>\s+([\d\.,]+)', webpage, u'view count', fatal=False)
+ if view_count is not None:
+ view_count = str_to_int(view_count)
return {
'id': video_id,
'formats': formats,
return {
'id': video_id,
'formats': formats,
- 'uploader':
video_uploader
,
+ 'uploader':
info['owner_screenname']
,
'upload_date': video_upload_date,
'title': self._og_search_title(webpage),
'subtitles': video_subtitles,
'upload_date': video_upload_date,
'title': self._og_search_title(webpage),
'subtitles': video_subtitles,