|  | @@ -1594,20 +1594,31 @@ class YoutubeChannelIE(InfoExtractor):
 | 
	
		
			
				|  |  |          # Download channel page
 | 
	
		
			
				|  |  |          channel_id = mobj.group(1)
 | 
	
		
			
				|  |  |          video_ids = []
 | 
	
		
			
				|  |  | +        url = 'https://www.youtube.com/channel/%s/videos' % channel_id
 | 
	
		
			
				|  |  | +        channel_page = self._download_webpage(url, channel_id)
 | 
	
		
			
				|  |  | +        if re.search(r'channel-header-autogenerated-label', channel_page) is not None:
 | 
	
		
			
				|  |  | +            autogenerated = True
 | 
	
		
			
				|  |  | +        else:
 | 
	
		
			
				|  |  | +            autogenerated = False
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        # Download all channel pages using the json-based channel_ajax query
 | 
	
		
			
				|  |  | -        for pagenum in itertools.count(1):
 | 
	
		
			
				|  |  | -            url = self._MORE_PAGES_URL % (pagenum, channel_id)
 | 
	
		
			
				|  |  | -            page = self._download_webpage(url, channel_id,
 | 
	
		
			
				|  |  | -                                          u'Downloading page #%s' % pagenum)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            page = json.loads(page)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            ids_in_page = self.extract_videos_from_page(page['content_html'])
 | 
	
		
			
				|  |  | -            video_ids.extend(ids_in_page)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            if self._MORE_PAGES_INDICATOR not in page['load_more_widget_html']:
 | 
	
		
			
				|  |  | -                break
 | 
	
		
			
				|  |  | +        if autogenerated:
 | 
	
		
			
				|  |  | +            # The videos are contained in a single page
 | 
	
		
			
				|  |  | +            # the ajax pages can't be used, they are empty
 | 
	
		
			
				|  |  | +            video_ids = self.extract_videos_from_page(channel_page)
 | 
	
		
			
				|  |  | +        else:
 | 
	
		
			
				|  |  | +            # Download all channel pages using the json-based channel_ajax query
 | 
	
		
			
				|  |  | +            for pagenum in itertools.count(1):
 | 
	
		
			
				|  |  | +                url = self._MORE_PAGES_URL % (pagenum, channel_id)
 | 
	
		
			
				|  |  | +                page = self._download_webpage(url, channel_id,
 | 
	
		
			
				|  |  | +                                              u'Downloading page #%s' % pagenum)
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +                page = json.loads(page)
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +                ids_in_page = self.extract_videos_from_page(page['content_html'])
 | 
	
		
			
				|  |  | +                video_ids.extend(ids_in_page)
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +                if self._MORE_PAGES_INDICATOR not in page['load_more_widget_html']:
 | 
	
		
			
				|  |  | +                    break
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          self._downloader.to_screen(u'[youtube] Channel %s: Found %i videos' % (channel_id, len(video_ids)))
 | 
	
		
			
				|  |  |  
 |