summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJaime Marquínez Ferrándiz <[email protected]>2013-10-21 14:09:38 +0200
committerJaime Marquínez Ferrándiz <[email protected]>2013-10-21 14:42:06 +0200
commit8c51aa6506c85f3826b55c35a1ebf470bd4ebe3a (patch)
treec65987ea11ba11f77a412aa506ac2a1c201ac197
parent3fd39e37f2b767e4c66518a6fe0f620344c31825 (diff)
downloadyoutube-dl-8c51aa6506c85f3826b55c35a1ebf470bd4ebe3a.tar.gz
youtube-dl-8c51aa6506c85f3826b55c35a1ebf470bd4ebe3a.zip
The 'format' field now defaults to '{format_id} - {width}x{height}{format_note}'
Following the YoutubeIE format. The 'format_note' gives additional info about the format, for example '3D' or 'DASH video'.
-rw-r--r--youtube_dl/YoutubeDL.py42
-rw-r--r--youtube_dl/extractor/common.py5
2 files changed, 31 insertions, 16 deletions
diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py
index a837971b0..5f70b6dac 100644
--- a/youtube_dl/YoutubeDL.py
+++ b/youtube_dl/YoutubeDL.py
@@ -473,17 +473,14 @@ class YoutubeDL(object):
# We check that all the formats have the format and format_id fields
for (i, format) in enumerate(formats):
- if format.get('format') is None:
- if format.get('height') is not None:
- if format.get('width') is not None:
- format_desc = u'%sx%s' % (format['width'], format['height'])
- else:
- format_desc = u'%sp' % format['height']
- else:
- format_desc = '???'
- format['format'] = format_desc
if format.get('format_id') is None:
format['format_id'] = compat_str(i)
+ if format.get('format') is None:
+ format['format'] = u'{id} - {res}{note}'.format(
+ id=format['format_id'],
+ res=self.format_resolution(format),
+ note = u' ({})'.format(format['format_note']) if format.get('format_note') is not None else '',
+ )
if self.params.get('listformats', None):
self.list_formats(info_dict)
@@ -753,16 +750,31 @@ class YoutubeDL(object):
with locked_file(fn, 'a', encoding='utf-8') as archive_file:
archive_file.write(vid_id + u'\n')
+ @staticmethod
+ def format_resolution(format):
+ if format.get('height') is not None:
+ if format.get('width') is not None:
+ res = u'%sx%s' % (format['width'], format['height'])
+ else:
+ res = u'%sp' % format['height']
+ else:
+ res = '???'
+ return res
+
def list_formats(self, info_dict):
formats_s = []
for format in info_dict.get('formats', [info_dict]):
- formats_s.append("%s\t:\t%s\t[%s]" % (format['format_id'],
- format['ext'],
- format.get('format', '???'),
- )
- )
+ formats_s.append(u'%-15s: %-5s %-15s[%s]' % (
+ format['format_id'],
+ format['ext'],
+ format.get('format_note') or '-',
+ self.format_resolution(format),
+ )
+ )
if len(formats_s) != 1:
formats_s[0] += ' (worst)'
formats_s[-1] += ' (best)'
formats_s = "\n".join(formats_s)
- self.to_screen(u"[info] Available formats for %s:\nformat code\textension\n%s" % (info_dict['id'], formats_s))
+ self.to_screen(u'[info] Available formats for %s:\n'
+ u'format code extension note resolution\n%s' % (
+ info_dict['id'], formats_s))
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py
index d4af3b5eb..7d7ce5d98 100644
--- a/youtube_dl/extractor/common.py
+++ b/youtube_dl/extractor/common.py
@@ -61,9 +61,12 @@ class InfoExtractor(object):
* ext Will be calculated from url if missing
* format A human-readable description of the format
("mp4 container with h264/opus").
- Calculated from width and height if missing.
+ Calculated from the format_id, width, height
+ and format_note fields if missing.
* format_id A short description of the format
("mp4_h264_opus" or "19")
+ * format_note Additional info about the format
+ ("3D" or "DASH video")
* width Width of the video, if known
* height Height of the video, if known