mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-23 19:35:19 +01:00
[motherless] Fix recent videos upload date extraction (closes #27661)
Less than a week old videos use a '20h ago' or '1d ago' format. I kept the support for 'Ago' with uppercase start at is was already in the code.
This commit is contained in:
parent
c3399cac19
commit
f318882955
|
@ -85,18 +85,27 @@ class MotherlessIE(InfoExtractor):
|
||||||
or 'http://cdn4.videos.motherlessmedia.com/videos/%s.mp4?fs=opencloud' % video_id)
|
or 'http://cdn4.videos.motherlessmedia.com/videos/%s.mp4?fs=opencloud' % video_id)
|
||||||
age_limit = self._rta_search(webpage)
|
age_limit = self._rta_search(webpage)
|
||||||
view_count = str_to_int(self._html_search_regex(
|
view_count = str_to_int(self._html_search_regex(
|
||||||
(r'>(\d+)\s+Views<', r'<strong>Views</strong>\s+([^<]+)<'),
|
(r'>([\d,.]+)\s+Views<', # 1,234,567 Views
|
||||||
|
r'<strong>Views</strong>\s+([^<]+)<'),
|
||||||
webpage, 'view count', fatal=False))
|
webpage, 'view count', fatal=False))
|
||||||
like_count = str_to_int(self._html_search_regex(
|
like_count = str_to_int(self._html_search_regex(
|
||||||
(r'>(\d+)\s+Favorites<', r'<strong>Favorited</strong>\s+([^<]+)<'),
|
(r'>([\d,.]+)\s+Favorites<', # 1,234 Favorites
|
||||||
|
r'<strong>Favorited</strong>\s+([^<]+)<'),
|
||||||
webpage, 'like count', fatal=False))
|
webpage, 'like count', fatal=False))
|
||||||
|
|
||||||
upload_date = self._html_search_regex(
|
upload_date = self._html_search_regex(
|
||||||
(r'class=["\']count[^>]+>(\d+\s+[a-zA-Z]{3}\s+\d{4})<',
|
(r'class=["\']count[^>]+>(\d+\s+[a-zA-Z]{3}\s+\d{4})<',
|
||||||
|
r'class=["\']count[^>]+>(\d+[hd])\s+[aA]go<', # 20h/1d ago
|
||||||
r'<strong>Uploaded</strong>\s+([^<]+)<'), webpage, 'upload date')
|
r'<strong>Uploaded</strong>\s+([^<]+)<'), webpage, 'upload date')
|
||||||
if 'Ago' in upload_date:
|
relative = re.match(r'(\d+)([hd])$', upload_date)
|
||||||
days = int(re.search(r'([0-9]+)', upload_date).group(1))
|
if relative:
|
||||||
upload_date = (datetime.datetime.now() - datetime.timedelta(days=days)).strftime('%Y%m%d')
|
delta = int(relative.group(1))
|
||||||
|
unit = relative.group(2)
|
||||||
|
if unit == 'h':
|
||||||
|
delta_t = datetime.timedelta(hours=delta)
|
||||||
|
else: # unit == 'd'
|
||||||
|
delta_t = datetime.timedelta(days=delta)
|
||||||
|
upload_date = (datetime.datetime.now() - delta_t).strftime('%Y%m%d')
|
||||||
else:
|
else:
|
||||||
upload_date = unified_strdate(upload_date)
|
upload_date = unified_strdate(upload_date)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user