[udemy] Improve format_id

This commit is contained in:
Sergey M․ 2016-03-27 00:02:52 +06:00
parent f973e5d54e
commit af4116f4f0

View file

@ -218,15 +218,13 @@ def extract_output_format(src):
if not isinstance(outputs, dict): if not isinstance(outputs, dict):
outputs = {} outputs = {}
def add_output_format_meta(f, key, format_id): def add_output_format_meta(f, key):
output = outputs.get(key) output = outputs.get(key)
if isinstance(output, dict): if isinstance(output, dict):
output_format = extract_output_format(output) output_format = extract_output_format(output)
output_format.update(f) output_format.update(f)
return output_format return output_format
else: return f
f['format_id'] = format_id
return f
download_urls = asset.get('download_urls') download_urls = asset.get('download_urls')
if isinstance(download_urls, dict): if isinstance(download_urls, dict):
@ -239,12 +237,13 @@ def add_output_format_meta(f, key, format_id):
format_id = format_.get('label') format_id = format_.get('label')
f = { f = {
'url': format_['file'], 'url': format_['file'],
'format_id': '%sp' % format_id,
'height': int_or_none(format_id), 'height': int_or_none(format_id),
} }
if format_id: if format_id:
# Some videos contain additional metadata (e.g. # Some videos contain additional metadata (e.g.
# https://www.udemy.com/ios9-swift/learn/#/lecture/3383208) # https://www.udemy.com/ios9-swift/learn/#/lecture/3383208)
f = add_output_format_meta(f, format_id, '%sp' % format_id) f = add_output_format_meta(f, format_id)
formats.append(f) formats.append(f)
view_html = lecture.get('view_html') view_html = lecture.get('view_html')
@ -275,8 +274,9 @@ def add_output_format_meta(f, key, format_id):
else: else:
formats.append(add_output_format_meta({ formats.append(add_output_format_meta({
'url': src, 'url': src,
'format_id': '%dp' % height if height else None,
'height': height, 'height': height,
}, res, '%dp' % height if height else None)) }, res))
self._sort_formats(formats, field_preference=('height', 'width', 'tbr', 'format_id')) self._sort_formats(formats, field_preference=('height', 'width', 'tbr', 'format_id'))