From 4539dd30e6c00a50760094e7a41744843d659cb1 Mon Sep 17 00:00:00 2001 From: Philipp Hagemeister Date: Sat, 4 May 2013 12:02:18 +0200 Subject: [PATCH] twitch.tv chapters (#810): print out start and end time --- youtube_dl/InfoExtractors.py | 8 ++++++-- youtube_dl/utils.py | 8 ++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index 96c597396..36343882b 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -3389,11 +3389,15 @@ def _real_extract(self, url): errnote='Download of chapter metadata failed') chapter_info = json.loads(chapter_info_json) + bracket_start = int(doc.find('.//bracket_start').text) + bracket_end = int(doc.find('.//bracket_end').text) # TODO determine start (and probably fix up file) # youtube-dl -v http://www.twitch.tv/firmbelief/c/1757457 - #video_url += u'?start=' + a.find('./start_timestamp').text - self._downloader.report_warning(u'Chapter detected, but we do not know how to calculate start position. Downloading the whole file ... (See https://github.com/rg3/youtube-dl/issues/810 )') + #video_url += u'?start=' + TODO:start_timestamp + # bracket_start is 13290, but we want 51670615 + self._downloader.report_warning(u'Chapter detected, but we can just download the whole file. ' + u'Chapter starts at %s and ends at %s' % (formatSeconds(bracket_start), formatSeconds(bracket_end))) info = { 'id': u'c' + chapter_id, diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 6c5b5df4c..4ec0ebfe1 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -430,6 +430,14 @@ def decodeOption(optval): assert isinstance(optval, compat_str) return optval +def formatSeconds(secs): + if secs > 3600: + return '%d:%02d:%02d' % (secs // 3600, (secs % 3600) // 60, secs % 60) + elif secs > 60: + return '%d:%02d' % (secs // 60, secs % 60) + else: + return '%d' % secs + class ExtractorError(Exception): """Error during info extraction.""" def __init__(self, msg, tb=None):