mirror of https://github.com/yt-dlp/yt-dlp.git
Do not extract timestamp if timezone not available
This commit is contained in:
parent
a1af9ffe27
commit
481ada3437
|
@ -4553,19 +4553,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||||
'uploader_url': format_field(channel_handle, None, 'https://www.youtube.com/%s', default=None),
|
'uploader_url': format_field(channel_handle, None, 'https://www.youtube.com/%s', default=None),
|
||||||
})
|
})
|
||||||
|
|
||||||
def get_pacific_tz():
|
# We only want timestamp IF it has second precision AND a timezone
|
||||||
# Python 3.8 should be deprecated soon
|
# Currently the uploadDate in microformats appears to be in US/Pacific timezone.
|
||||||
# This fallback may make the timestamp slightly inaccurate for 3.8 users.
|
|
||||||
if sys.version_info < (3, 9):
|
|
||||||
return NO_DEFAULT
|
|
||||||
from zoneinfo import ZoneInfo
|
|
||||||
return dt.datetime.now(ZoneInfo('US/Pacific')).utcoffset()
|
|
||||||
|
|
||||||
# We only want timestamp IF it has second precision
|
|
||||||
# Additionally, if there is no timezone present, we should assume it is in PT.
|
|
||||||
timestamp = (
|
timestamp = (
|
||||||
parse_iso8601(get_first(microformats, 'uploadDate'), timezone=get_pacific_tz())
|
parse_iso8601(get_first(microformats, 'uploadDate'), timezone=NO_DEFAULT)
|
||||||
or parse_iso8601(search_meta('uploadDate'), timezone=get_pacific_tz())
|
or parse_iso8601(search_meta('uploadDate'), timezone=NO_DEFAULT)
|
||||||
)
|
)
|
||||||
upload_date = (
|
upload_date = (
|
||||||
dt.datetime.fromtimestamp(timestamp, dt.timezone.utc).strftime('%Y%m%d') if timestamp else
|
dt.datetime.fromtimestamp(timestamp, dt.timezone.utc).strftime('%Y%m%d') if timestamp else
|
||||||
|
|
Loading…
Reference in New Issue