|
|
|
@ -513,6 +513,16 @@ class YoutubeDL(object):
|
|
|
|
|
'track_number', 'disc_number', 'release_year',
|
|
|
|
|
))
|
|
|
|
|
|
|
|
|
|
_format_fields = {
|
|
|
|
|
# NB: Keep in sync with the docstring of extractor/common.py
|
|
|
|
|
'url', 'manifest_url', 'ext', 'format', 'format_id', 'format_note',
|
|
|
|
|
'width', 'height', 'resolution', 'dynamic_range', 'tbr', 'abr', 'acodec', 'asr',
|
|
|
|
|
'vbr', 'fps', 'vcodec', 'container', 'filesize', 'filesize_approx',
|
|
|
|
|
'player_url', 'protocol', 'fragment_base_url', 'fragments', 'is_from_start',
|
|
|
|
|
'preference', 'language', 'language_preference', 'quality', 'source_preference',
|
|
|
|
|
'http_headers', 'stretched_ratio', 'no_resume', 'has_drm', 'downloader_options',
|
|
|
|
|
'page_url', 'app', 'play_path', 'tc_url', 'flash_version', 'rtmp_live', 'rtmp_conn', 'rtmp_protocol', 'rtmp_real_time'
|
|
|
|
|
}
|
|
|
|
|
_format_selection_exts = {
|
|
|
|
|
'audio': {'m4a', 'mp3', 'ogg', 'aac'},
|
|
|
|
|
'video': {'mp4', 'flv', 'webm', '3gp'},
|
|
|
|
@ -2541,7 +2551,7 @@ class YoutubeDL(object):
|
|
|
|
|
|
|
|
|
|
info_dict, _ = self.pre_process(info_dict)
|
|
|
|
|
|
|
|
|
|
if self._match_entry(info_dict) is not None:
|
|
|
|
|
if self._match_entry(info_dict, incomplete=self._format_fields) is not None:
|
|
|
|
|
return info_dict
|
|
|
|
|
|
|
|
|
|
self.post_extract(info_dict)
|
|
|
|
|