diff --git a/README.md b/README.md index 61ab388c36..2ab8d2de9f 100644 --- a/README.md +++ b/README.md @@ -741,6 +741,7 @@ The basic usage is not to set any template arguments when downloading a single f - `channel_id` (string): Id of the channel - `location` (string): Physical location where the video was filmed - `duration` (numeric): Length of the video in seconds + - `duration_string` (string): Length of the video (HH-mm-ss) - `view_count` (numeric): How many users have watched the video on the platform - `like_count` (numeric): Number of positive ratings of the video - `dislike_count` (numeric): Number of negative ratings of the video diff --git a/youtube_dlc/YoutubeDL.py b/youtube_dlc/YoutubeDL.py index e632ba708f..19666d0ad1 100644 --- a/youtube_dlc/YoutubeDL.py +++ b/youtube_dlc/YoutubeDL.py @@ -908,6 +908,10 @@ class YoutubeDL(object): self.add_extra_info(ie_result, { 'extractor': ie.IE_NAME, 'webpage_url': url, + 'duration_string': ( + formatSeconds(ie_result['duration'], '-') + if ie_result.get('duration', None) is not None + else None), 'webpage_url_basename': url_basename(url), 'extractor_key': ie.ie_key(), }) diff --git a/youtube_dlc/utils.py b/youtube_dlc/utils.py index 6ed8629a7a..21e3481a0f 100644 --- a/youtube_dlc/utils.py +++ b/youtube_dlc/utils.py @@ -2285,11 +2285,11 @@ def decodeOption(optval): return optval -def formatSeconds(secs): +def formatSeconds(secs, delim=':'): if secs > 3600: - return '%d:%02d:%02d' % (secs // 3600, (secs % 3600) // 60, secs % 60) + return '%d%s%02d%s%02d' % (secs // 3600, delim, (secs % 3600) // 60, delim, secs % 60) elif secs > 60: - return '%d:%02d' % (secs // 60, secs % 60) + return '%d%s%02d' % (secs // 60, delim, secs % 60) else: return '%d' % secs