mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	Implement the playlist/start options in FileDownloader
It makes it available for all the InfoExtractors
This commit is contained in:
		| @@ -485,10 +485,25 @@ class FileDownloader(object): | ||||
|             #We process each entry in the playlist | ||||
|             playlist = ie_result.get('title', None) or ie_result.get('id', None) | ||||
|             self.to_screen(u'[download] Downloading playlist: %s'  % playlist) | ||||
|             n_videos = len(ie_result['entries']) | ||||
|  | ||||
|             playlist_results = [] | ||||
|             for i,entry in enumerate(ie_result['entries'],1): | ||||
|                 self.to_screen(u'[download] Downloading video #%s of %s' %(i, n_videos)) | ||||
|  | ||||
|             n_all_entries = len(ie_result['entries']) | ||||
|             playliststart = self.params.get('playliststart', 1) - 1 | ||||
|             playlistend = self.params.get('playlistend', -1) | ||||
|  | ||||
|             if playlistend == -1: | ||||
|                 entries = ie_result['entries'][playliststart:] | ||||
|             else: | ||||
|                 entries = ie_result['entries'][playliststart:playlistend] | ||||
|  | ||||
|             n_entries = len(entries) | ||||
|  | ||||
|             self.to_screen(u"[%s] playlist '%s': Collected %d video ids (downloading %d of them)" % | ||||
|                 (ie_result['extractor'], playlist, n_all_entries, n_entries)) | ||||
|  | ||||
|             for i,entry in enumerate(entries,1): | ||||
|                 self.to_screen(u'[download] Downloading video #%s of %s' %(i, n_entries)) | ||||
|                 entry_result = self.process_ie_result(entry, False) | ||||
|                 entry_result['playlist'] = playlist | ||||
|                 #We must do the download here to correctly set the 'playlist' key | ||||
|   | ||||
| @@ -1806,19 +1806,6 @@ class YoutubePlaylistIE(InfoExtractor): | ||||
|             page_num += 1 | ||||
|  | ||||
|         videos = [v[1] for v in sorted(videos)] | ||||
|         total = len(videos) | ||||
|  | ||||
|         playliststart = self._downloader.params.get('playliststart', 1) - 1 | ||||
|         playlistend = self._downloader.params.get('playlistend', -1) | ||||
|         if playlistend == -1: | ||||
|             videos = videos[playliststart:] | ||||
|         else: | ||||
|             videos = videos[playliststart:playlistend] | ||||
|  | ||||
|         if len(videos) == total: | ||||
|             self._downloader.to_screen(u'[youtube] PL %s: Found %i videos' % (playlist_id, total)) | ||||
|         else: | ||||
|             self._downloader.to_screen(u'[youtube] PL %s: Found %i videos, downloading %i' % (playlist_id, total, len(videos))) | ||||
|  | ||||
|         url_results = [self.url_result(url) for url in videos] | ||||
|         return [self.playlist_result(url_results, playlist_id)] | ||||
| @@ -1943,18 +1930,6 @@ class YoutubeUserIE(InfoExtractor): | ||||
|  | ||||
|             pagenum += 1 | ||||
|  | ||||
|         all_ids_count = len(video_ids) | ||||
|         playliststart = self._downloader.params.get('playliststart', 1) - 1 | ||||
|         playlistend = self._downloader.params.get('playlistend', -1) | ||||
|  | ||||
|         if playlistend == -1: | ||||
|             video_ids = video_ids[playliststart:] | ||||
|         else: | ||||
|             video_ids = video_ids[playliststart:playlistend] | ||||
|  | ||||
|         self._downloader.to_screen(u"[youtube] user %s: Collected %d video ids (downloading %d of them)" % | ||||
|                 (username, all_ids_count, len(video_ids))) | ||||
|  | ||||
|         urls = ['http://www.youtube.com/watch?v=%s' % video_id for video_id in video_ids] | ||||
|         url_results = [self.url_result(url) for url in urls] | ||||
|         return [self.playlist_result(url_results, playlist_title = username)] | ||||
| @@ -2035,15 +2010,6 @@ class BlipTVUserIE(InfoExtractor): | ||||
|  | ||||
|             pagenum += 1 | ||||
|  | ||||
|         all_ids_count = len(video_ids) | ||||
|         playliststart = self._downloader.params.get('playliststart', 1) - 1 | ||||
|         playlistend = self._downloader.params.get('playlistend', -1) | ||||
|  | ||||
|         if playlistend == -1: | ||||
|             video_ids = video_ids[playliststart:] | ||||
|         else: | ||||
|             video_ids = video_ids[playliststart:playlistend] | ||||
|  | ||||
|         self._downloader.to_screen(u"[%s] user %s: Collected %d video ids (downloading %d of them)" % | ||||
|                 (self.IE_NAME, username, all_ids_count, len(video_ids))) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user