mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-12 20:23:11 +00:00
[youtube] Enforce UTC (#2402)
and [utils] use `utcnow` in `datetime_from_str` Related: #2223 Authored by: coletdjnz
This commit is contained in:
parent
301d07fc4b
commit
396a76f7bf
@ -373,7 +373,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
|
|||||||
pref = dict(compat_urlparse.parse_qsl(pref_cookie.value))
|
pref = dict(compat_urlparse.parse_qsl(pref_cookie.value))
|
||||||
except ValueError:
|
except ValueError:
|
||||||
self.report_warning('Failed to parse user PREF cookie' + bug_reports_message())
|
self.report_warning('Failed to parse user PREF cookie' + bug_reports_message())
|
||||||
pref.update({'hl': 'en'})
|
pref.update({'hl': 'en', 'tz': 'UTC'})
|
||||||
self._set_cookie('.youtube.com', name='PREF', value=compat_urllib_parse_urlencode(pref))
|
self._set_cookie('.youtube.com', name='PREF', value=compat_urllib_parse_urlencode(pref))
|
||||||
|
|
||||||
def _real_initialize(self):
|
def _real_initialize(self):
|
||||||
@ -412,8 +412,9 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
|
|||||||
def _extract_context(self, ytcfg=None, default_client='web'):
|
def _extract_context(self, ytcfg=None, default_client='web'):
|
||||||
context = get_first(
|
context = get_first(
|
||||||
(ytcfg, self._get_default_ytcfg(default_client)), 'INNERTUBE_CONTEXT', expected_type=dict)
|
(ytcfg, self._get_default_ytcfg(default_client)), 'INNERTUBE_CONTEXT', expected_type=dict)
|
||||||
# Enforce language for extraction
|
# Enforce language and tz for extraction
|
||||||
traverse_obj(context, 'client', expected_type=dict, default={})['hl'] = 'en'
|
client_context = traverse_obj(context, 'client', expected_type=dict, default={})
|
||||||
|
client_context.update({'hl': 'en', 'timeZone': 'UTC', 'utcOffsetMinutes': 0})
|
||||||
return context
|
return context
|
||||||
|
|
||||||
_SAPISID = None
|
_SAPISID = None
|
||||||
@ -729,7 +730,8 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
|
|||||||
timestamp = (
|
timestamp = (
|
||||||
unified_timestamp(text) or unified_timestamp(
|
unified_timestamp(text) or unified_timestamp(
|
||||||
self._search_regex(
|
self._search_regex(
|
||||||
(r'(?:.+|^)(?:live|premieres|ed|ing)(?:\s*on)?\s*(.+\d)', r'\w+[\s,\.-]*\w+[\s,\.-]+20\d{2}'), text.lower(), 'time text', default=None)))
|
(r'(?:.+|^)(?:live|premieres|ed|ing)(?:\s*on)?\s*(.+\d)', r'\w+[\s,\.-]*\w+[\s,\.-]+20\d{2}'),
|
||||||
|
text.lower(), 'time text', default=None)))
|
||||||
|
|
||||||
if text and timestamp is None:
|
if text and timestamp is None:
|
||||||
self.report_warning('Cannot parse localized time text' + bug_reports_message(), only_once=True)
|
self.report_warning('Cannot parse localized time text' + bug_reports_message(), only_once=True)
|
||||||
|
@ -1846,7 +1846,7 @@ def datetime_from_str(date_str, precision='auto', format='%Y%m%d'):
|
|||||||
if precision == 'auto':
|
if precision == 'auto':
|
||||||
auto_precision = True
|
auto_precision = True
|
||||||
precision = 'microsecond'
|
precision = 'microsecond'
|
||||||
today = datetime_round(datetime.datetime.now(), precision)
|
today = datetime_round(datetime.datetime.utcnow(), precision)
|
||||||
if date_str in ('now', 'today'):
|
if date_str in ('now', 'today'):
|
||||||
return today
|
return today
|
||||||
if date_str == 'yesterday':
|
if date_str == 'yesterday':
|
||||||
|
Loading…
Reference in New Issue
Block a user