[afreecatv] Tolerate failure to parse date string (#832)

Authored by: wlritchi
This commit is contained in:
Luc Ritchie 2021-08-30 12:07:34 -04:00 committed by GitHub
parent 875cfb8cbc
commit b2eeee0ce0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -6,9 +6,11 @@
from .common import InfoExtractor from .common import InfoExtractor
from ..compat import compat_xpath from ..compat import compat_xpath
from ..utils import ( from ..utils import (
date_from_str,
determine_ext, determine_ext,
ExtractorError, ExtractorError,
int_or_none, int_or_none,
unified_strdate,
url_or_none, url_or_none,
urlencode_postdata, urlencode_postdata,
xpath_text, xpath_text,
@ -315,8 +317,15 @@ def _real_extract(self, url):
if not file_url: if not file_url:
continue continue
key = file_element.get('key', '') key = file_element.get('key', '')
upload_date = self._search_regex( upload_date = unified_strdate(self._search_regex(
r'^(\d{8})_', key, 'upload date', default=None) r'^(\d{8})_', key, 'upload date', default=None))
if upload_date is not None:
# sometimes the upload date isn't included in the file name
# instead, another random ID is, which may parse as a valid
# date but be wildly out of a reasonable range
parsed_date = date_from_str(upload_date)
if parsed_date.year < 2000 or parsed_date.year >= 2100:
upload_date = None
file_duration = int_or_none(file_element.get('duration')) file_duration = int_or_none(file_element.get('duration'))
format_id = key if key else '%s_%s' % (video_id, file_num) format_id = key if key else '%s_%s' % (video_id, file_num)
if determine_ext(file_url) == 'm3u8': if determine_ext(file_url) == 'm3u8':