From 1dbfd7875497398e8c92c67b8307bafef20e8113 Mon Sep 17 00:00:00 2001 From: Peter Rowlands Date: Fri, 6 May 2016 12:07:29 +0900 Subject: [PATCH] fix multi_video part naming, add upload_date field --- youtube_dl/extractor/afreecatv.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/afreecatv.py b/youtube_dl/extractor/afreecatv.py index c9a4b73118..e927e4a48f 100644 --- a/youtube_dl/extractor/afreecatv.py +++ b/youtube_dl/extractor/afreecatv.py @@ -1,6 +1,8 @@ # coding: utf-8 from __future__ import unicode_literals +import re + from .common import InfoExtractor from ..compat import ( compat_urllib_parse_urlparse, @@ -34,6 +36,15 @@ class AfreecaTVIE(InfoExtractor): } } + @staticmethod + def parse_video_key(key): + video_key = {'upload_date': None, 'part': '0'} + m = re.match(r'^(?P\d{8})_\w+_(?P\d+)$', key) + if m: + video_key['upload_date'] = m.group('upload_date') + video_key['part'] = m.group('part') + return video_key + def _real_extract(self, url): video_id = self._match_id(url) parsed_url = compat_urllib_parse_urlparse(url) @@ -54,9 +65,11 @@ class AfreecaTVIE(InfoExtractor): entries = [] for video_file in video_xml.findall('./track/video/file'): + video_key = self.parse_video_key(video_file.get('key')) entries.append({ - 'id': video_file.get('key'), + 'id': '%s_%s' % (video_id, video_key['part']), 'title': title, + 'upload_date': video_key['upload_date'], 'duration': int_or_none(video_file.get('duration')), 'url': video_file.text, }) @@ -75,6 +88,7 @@ class AfreecaTVIE(InfoExtractor): info['entries'] = entries elif len(entries) == 1: info['url'] = entries[0]['url'] + info['upload_date'] = entries[0]['upload_date'] else: raise ExtractorError( 'No files found for the specified AfreecaTV video, either'