diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 19370f62b..b3935518c 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -864,6 +864,8 @@ class YoutubeDL(object): elif result_type == 'url': # We have to add extra_info to the results because it may be # contained in a playlist + if ie_result.get('channel_image'): + extra_info['channel_image'] = ie_result.get('channel_image') return self.extract_info(ie_result['url'], download, ie_key=ie_result.get('ie_key'), @@ -998,6 +1000,7 @@ class YoutubeDL(object): 'extractor_key': ie_result['extractor_key'], } + extra.update(extra_info) reason = self._match_entry(entry, incomplete=True) if reason is not None: self.to_screen('[download] ' + reason) diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index b35bf03aa..527cf1922 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -2962,6 +2962,8 @@ class YoutubeChannelIE(YoutubePlaylistBaseInfoExtractor): if channel_page is False: channel_playlist_id = False else: + channel_image = self._html_search_meta( + 'og:image', channel_page, 'channel image', default=None) channel_playlist_id = self._html_search_meta( 'channelId', channel_page, 'channel id', default=None) if not channel_playlist_id: @@ -2974,8 +2976,10 @@ class YoutubeChannelIE(YoutubePlaylistBaseInfoExtractor): channel_url, 'channel id', default=None) if channel_playlist_id and channel_playlist_id.startswith('UC'): playlist_id = 'UU' + channel_playlist_id[2:] - return self.url_result( + url_result = self.url_result( compat_urlparse.urljoin(url, '/playlist?list=%s' % playlist_id), 'YoutubePlaylist') + url_result['channel_image'] = channel_image + return url_result channel_page = self._download_webpage(url, channel_id, 'Downloading page #1') autogenerated = re.search(r'''(?x)