Add automatic generation of format note based on bitrate and codecs

This commit is contained in:
Philipp Hagemeister 2013-11-16 01:08:43 +01:00
parent aa13b2dffd
commit 91c7271aab
3 changed files with 25 additions and 4 deletions

View file

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

View file

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

View file

@ -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')),