From 07e6c7bef6966c4b80dfb2b15845818fa10f4c67 Mon Sep 17 00:00:00 2001 From: Abhishek Kedia Date: Mon, 21 Dec 2015 01:41:34 +0100 Subject: [PATCH] Fix issue [#7918](https://github.com/rg3/youtube-dl/issues/7918) trying to download single images from imgur produced error. E.g. https://imgur.com/gallery/YcAQlkx Issue was caused 'http://imgur.com/gallery//album_images/hit.json?all=true' returns a json with data field containing id of all images contained in the album. But for a single image, data filed is empty. Added `if` condition to check if its empty. --- youtube_dl/extractor/imgur.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/youtube_dl/extractor/imgur.py b/youtube_dl/extractor/imgur.py index 70c8ca64e..128a61497 100644 --- a/youtube_dl/extractor/imgur.py +++ b/youtube_dl/extractor/imgur.py @@ -113,12 +113,15 @@ class ImgurAlbumIE(InfoExtractor): def _real_extract(self, url): album_id = self._match_id(url) - album_images = self._download_json( - 'http://imgur.com/gallery/%s/album_images/hit.json?all=true' % album_id, - album_id)['data']['images'] + album_img_data = self._download_json( + 'http://imgur.com/gallery/%s/album_images/hit.json?all=true' % album_id,album_id)['data'] - entries = [ - self.url_result('http://imgur.com/%s' % image['hash']) - for image in album_images if image.get('hash')] + if(len(album_img_data) == 0): + entries = [self.url_result('http://imgur.com/%s' % album_id)] + else: + album_images = album_img_data['images'] + entries = [ + self.url_result('http://imgur.com/%s' % image['hash']) + for image in album_images if image.get('hash')] return self.playlist_result(entries, album_id)