When a query results of 0 items, the key items is not present in the api_response dictionary, raising a KeyError. Intead, look for the key and call trouble if it's not present.
@@ -1478,6 +1478,10 @@ class YoutubeSearchIE(InfoExtractor):
return
api_response = json.loads(data)['data']
+ if not 'items' in api_response:
+ self._downloader.trouble(u'[youtube] No video results')
+ return
+
new_ids = list(video['id'] for video in api_response['items'])
video_ids += new_ids