aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2013-05-04 12:02:18 +0200
committerPhilipp Hagemeister <phihag@phihag.de>2013-05-04 12:02:18 +0200
commit4539dd30e6c00a50760094e7a41744843d659cb1 (patch)
tree7bd5d78b89be688b7e7338eecbadf1c0dc9bb61a
parentc43e57242e10eae327d4348390cfb9e574fad5dd (diff)
downloadyoutube-dl-4539dd30e6c00a50760094e7a41744843d659cb1.tar.xz
twitch.tv chapters (#810): print out start and end time
-rwxr-xr-xyoutube_dl/InfoExtractors.py8
-rw-r--r--youtube_dl/utils.py8
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 @@ class JustinTVIE(InfoExtractor):
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):