Download playlist items in reverse order
Series of videos are typically uploaded to YouTube playlists in chronological order. By default, these videos are downloaded latest-to-earliest; this is great for seeing the latest videos in a series, but prevents streaming video in the order that the videos were produced. Add an option to download videos in reverse order, earliest-to-latest. Conflicts: youtube_dl/YoutubeDL.py youtube_dl/__init__.py
This commit is contained in:
		 Mark Schreiber
					Mark Schreiber
				
			
				
					committed by
					
						 Philipp Hagemeister
						Philipp Hagemeister
					
				
			
			
				
	
			
			
			 Philipp Hagemeister
						Philipp Hagemeister
					
				
			
						parent
						
							da3a2d8137
						
					
				
				
					commit
					ff815fe65a
				
			| @@ -75,6 +75,7 @@ which means you can modify it, redistribute it or use it however you like. | |||||||
| ## Video Selection: | ## Video Selection: | ||||||
|     --playlist-start NUMBER          playlist video to start at (default is 1) |     --playlist-start NUMBER          playlist video to start at (default is 1) | ||||||
|     --playlist-end NUMBER            playlist video to end at (default is last) |     --playlist-end NUMBER            playlist video to end at (default is last) | ||||||
|  |     --playlist-reverse               Download playlist videos in reverse order | ||||||
|     --match-title REGEX              download only matching titles (regex or |     --match-title REGEX              download only matching titles (regex or | ||||||
|                                      caseless sub-string) |                                      caseless sub-string) | ||||||
|     --reject-title REGEX             skip download for matching titles (regex or |     --reject-title REGEX             skip download for matching titles (regex or | ||||||
|   | |||||||
| @@ -124,6 +124,7 @@ class YoutubeDL(object): | |||||||
|     nooverwrites:      Prevent overwriting files. |     nooverwrites:      Prevent overwriting files. | ||||||
|     playliststart:     Playlist item to start at. |     playliststart:     Playlist item to start at. | ||||||
|     playlistend:       Playlist item to end at. |     playlistend:       Playlist item to end at. | ||||||
|  |     playlistreverse:   Download playlist items in reverse order. | ||||||
|     matchtitle:        Download only matching titles. |     matchtitle:        Download only matching titles. | ||||||
|     rejecttitle:       Reject downloads for matching titles. |     rejecttitle:       Reject downloads for matching titles. | ||||||
|     logger:            Log messages to a logging.Logger instance. |     logger:            Log messages to a logging.Logger instance. | ||||||
| @@ -670,6 +671,9 @@ class YoutubeDL(object): | |||||||
|                     "[%s] playlist %s: Downloading %d videos" % |                     "[%s] playlist %s: Downloading %d videos" % | ||||||
|                     (ie_result['extractor'], playlist, n_entries)) |                     (ie_result['extractor'], playlist, n_entries)) | ||||||
|  |  | ||||||
|  |             if self.params.get('playlistreverse', False): | ||||||
|  |                 entries = entries[::-1] | ||||||
|  |  | ||||||
|             for i, entry in enumerate(entries, 1): |             for i, entry in enumerate(entries, 1): | ||||||
|                 self.to_screen('[download] Downloading video #%s of %s' % (i, n_entries)) |                 self.to_screen('[download] Downloading video #%s of %s' % (i, n_entries)) | ||||||
|                 extra = { |                 extra = { | ||||||
|   | |||||||
| @@ -249,6 +249,7 @@ def _real_main(argv=None): | |||||||
|         'progress_with_newline': opts.progress_with_newline, |         'progress_with_newline': opts.progress_with_newline, | ||||||
|         'playliststart': opts.playliststart, |         'playliststart': opts.playliststart, | ||||||
|         'playlistend': opts.playlistend, |         'playlistend': opts.playlistend, | ||||||
|  |         'playlistreverse': opts.playlist_reverse, | ||||||
|         'noplaylist': opts.noplaylist, |         'noplaylist': opts.noplaylist, | ||||||
|         'logtostderr': opts.outtmpl == '-', |         'logtostderr': opts.outtmpl == '-', | ||||||
|         'consoletitle': opts.consoletitle, |         'consoletitle': opts.consoletitle, | ||||||
|   | |||||||
| @@ -349,6 +349,10 @@ def parseOpts(overrideArguments=None): | |||||||
|         '--test', |         '--test', | ||||||
|         action='store_true', dest='test', default=False, |         action='store_true', dest='test', default=False, | ||||||
|         help=optparse.SUPPRESS_HELP) |         help=optparse.SUPPRESS_HELP) | ||||||
|  |     downloader.add_option( | ||||||
|  |         '--playlist-reverse', | ||||||
|  |         action='store_true', | ||||||
|  |         help='Download playlist videos in reverse order') | ||||||
|  |  | ||||||
|     workarounds = optparse.OptionGroup(parser, 'Workarounds') |     workarounds = optparse.OptionGroup(parser, 'Workarounds') | ||||||
|     workarounds.add_option( |     workarounds.add_option( | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user