Add `duration_string` to info_dict

This commit is contained in:
pukkandan 2021-01-06 22:37:55 +05:30
parent 7fd86ce1a9
commit dbbbe555d7
3 changed files with 8 additions and 3 deletions

View File

@ -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

View File

@ -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(),
})

View File

@ -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