|
|
@ -6,9 +6,11 @@ import re
|
|
|
|
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 @@ class AfreecaTVIE(InfoExtractor):
|
|
|
|
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':
|
|
|
|