From bec1fad2234a9b6d1fac6a1a430af2b828fb8060 Mon Sep 17 00:00:00 2001 From: Philipp Hagemeister Date: Thu, 3 Apr 2014 14:36:40 +0200 Subject: [PATCH] [YouTubeDL] Throw an early error if the info_dict result is invalid --- youtube_dl/YoutubeDL.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 84acaa5dc..430773edd 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -702,6 +702,11 @@ def select_format(self, format_spec, available_formats): def process_video_result(self, info_dict, download=True): assert info_dict.get('_type', 'video') == 'video' + if 'id' not in info_dict: + raise ExtractorError('Missing "id" field in extractor result') + if 'title' not in info_dict: + raise ExtractorError('Missing "title" field in extractor result') + if 'playlist' not in info_dict: # It isn't part of a playlist info_dict['playlist'] = None @@ -733,6 +738,9 @@ def process_video_result(self, info_dict, download=True): # We check that all the formats have the format and format_id fields for i, format in enumerate(formats): + if 'url' not in format: + raise ExtractorError('Missing "url" key in result (index %d)' % i) + if format.get('format_id') is None: format['format_id'] = compat_str(i) if format.get('format') is None: