mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-12-03 11:56:40 +00:00
Add automatic generation of format note based on bitrate and codecs
This commit is contained in:
parent
aa13b2dffd
commit
91c7271aab
|
@ -781,12 +781,28 @@ def format_resolution(format, default='unknown'):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def list_formats(self, info_dict):
|
def list_formats(self, info_dict):
|
||||||
|
def format_note(fdict):
|
||||||
|
if fdict.get('format_note') is not None:
|
||||||
|
return fdict['format_note']
|
||||||
|
res = u''
|
||||||
|
if fdict.get('vcodec') is not None:
|
||||||
|
res += fdict['vcodec']
|
||||||
|
if fdict.get('vbr') is not None:
|
||||||
|
res += u'@%4dk' % fdict['vbr']
|
||||||
|
if fdict.get('acodec') is not None:
|
||||||
|
if res:
|
||||||
|
res += u', '
|
||||||
|
res += fdict['acodec']
|
||||||
|
if fdict.get('abr') is not None:
|
||||||
|
res += u'@%3dk' % fdict['abr']
|
||||||
|
return res
|
||||||
|
|
||||||
def line(format):
|
def line(format):
|
||||||
return (u'%-20s%-10s%-12s%s' % (
|
return (u'%-20s%-10s%-12s%s' % (
|
||||||
format['format_id'],
|
format['format_id'],
|
||||||
format['ext'],
|
format['ext'],
|
||||||
self.format_resolution(format),
|
self.format_resolution(format),
|
||||||
format.get('format_note', ''),
|
format_note(format),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,10 @@ class InfoExtractor(object):
|
||||||
("3D" or "DASH video")
|
("3D" or "DASH video")
|
||||||
* width Width of the video, if known
|
* width Width of the video, if known
|
||||||
* height Height of the video, if known
|
* height Height of the video, if known
|
||||||
|
* abr Average audio bitrate in KBit/s
|
||||||
|
* acodec Name of the audio codec in use
|
||||||
|
* vbr Average video bitrate in KBit/s
|
||||||
|
* vcodec Name of the video codec in use
|
||||||
webpage_url: The url to the video webpage, if given to youtube-dl it
|
webpage_url: The url to the video webpage, if given to youtube-dl it
|
||||||
should allow to get the same result again. (It will be set
|
should allow to get the same result again. (It will be set
|
||||||
by YoutubeDL if it's missing)
|
by YoutubeDL if it's missing)
|
||||||
|
|
|
@ -78,12 +78,13 @@ def _formats_from_smil(self, smil_xml):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
format_url = self._SMIL_BASE_URL + m.group('path')
|
format_url = self._SMIL_BASE_URL + m.group('path')
|
||||||
format_note = ('%(vcodec)s@%(vbr)4sk, %(acodec)s@%(abr)3sk' %
|
|
||||||
m.groupdict())
|
|
||||||
formats.append({
|
formats.append({
|
||||||
'url': format_url,
|
'url': format_url,
|
||||||
'format_id': u'SMIL_' + m.group('cbr'),
|
'format_id': u'SMIL_' + m.group('cbr'),
|
||||||
'format_note': format_note,
|
'vcodec': m.group('vcodec'),
|
||||||
|
'acodec': m.group('acodec'),
|
||||||
|
'vbr': int(m.group('vbr')),
|
||||||
|
'abr': int(m.group('abr')),
|
||||||
'ext': m.group('ext'),
|
'ext': m.group('ext'),
|
||||||
'width': int(m.group('width')),
|
'width': int(m.group('width')),
|
||||||
'height': int(m.group('height')),
|
'height': int(m.group('height')),
|
||||||
|
|
Loading…
Reference in a new issue