mirror of
				https://code.hackerspace.pl/q3k/youtube-dl
				synced 2025-03-16 11:43:02 +00:00 
			
		
		
		
	implement --no-playlist to only download current video - closes #755
This commit is contained in:
		
							parent
							
								
									722076a123
								
							
						
					
					
						commit
						47192f92d8
					
				| @ -50,6 +50,7 @@ which means you can modify it, redistribute it or use it however you like. | ||||
|     --date DATE                download only videos uploaded in this date | ||||
|     --datebefore DATE          download only videos uploaded before this date | ||||
|     --dateafter DATE           download only videos uploaded after this date | ||||
|     --no-playlist              download only the currently playing video | ||||
| 
 | ||||
| ## Download Options: | ||||
|     -r, --rate-limit LIMIT     maximum download rate (e.g. 50k or 44.6m) | ||||
|  | ||||
| @ -83,6 +83,7 @@ class YoutubeDL(object): | ||||
|     skip_download:     Skip the actual download of the video file | ||||
|     cachedir:          Location of the cache files in the filesystem. | ||||
|                        None to disable filesystem cache. | ||||
|     noplaylist:        Download single video instead of a playlist if in doubt. | ||||
|      | ||||
|     The following parameters are not used by YoutubeDL itself, they are used by | ||||
|     the FileDownloader: | ||||
|  | ||||
| @ -187,6 +187,7 @@ def parseOpts(overrideArguments=None): | ||||
|     selection.add_option('--date', metavar='DATE', dest='date', help='download only videos uploaded in this date', default=None) | ||||
|     selection.add_option('--datebefore', metavar='DATE', dest='datebefore', help='download only videos uploaded before this date', default=None) | ||||
|     selection.add_option('--dateafter', metavar='DATE', dest='dateafter', help='download only videos uploaded after this date', default=None) | ||||
|     selection.add_option('--no-playlist', action='store_true', dest='noplaylist', help='download only the currently playing video', default=False) | ||||
| 
 | ||||
| 
 | ||||
|     authentication.add_option('-u', '--username', | ||||
| @ -599,6 +600,7 @@ def _real_main(argv=None): | ||||
|         'progress_with_newline': opts.progress_with_newline, | ||||
|         'playliststart': opts.playliststart, | ||||
|         'playlistend': opts.playlistend, | ||||
|         'noplaylist': opts.noplaylist, | ||||
|         'logtostderr': opts.outtmpl == '-', | ||||
|         'consoletitle': opts.consoletitle, | ||||
|         'nopart': opts.nopart, | ||||
|  | ||||
| @ -13,6 +13,7 @@ import struct | ||||
| import traceback | ||||
| import xml.etree.ElementTree | ||||
| import zlib | ||||
| import urlparse | ||||
| 
 | ||||
| from .common import InfoExtractor, SearchInfoExtractor | ||||
| from .subtitles import SubtitlesInfoExtractor | ||||
| @ -1523,9 +1524,19 @@ class YoutubePlaylistIE(InfoExtractor): | ||||
|         mobj = re.match(self._VALID_URL, url, re.VERBOSE) | ||||
|         if mobj is None: | ||||
|             raise ExtractorError(u'Invalid URL: %s' % url) | ||||
|         playlist_id = mobj.group(1) or mobj.group(2) | ||||
| 
 | ||||
|         # Check if it's a video-specific URL | ||||
|         query_dict = urlparse.parse_qs(urlparse.urlparse(url).query) | ||||
|         if 'v' in query_dict: | ||||
|             video_id = query_dict['v'][0] | ||||
|             if self._downloader.params.get('noplaylist'): | ||||
|                 self.to_screen(u'Downloading just video %s because of --no-playlist' % video_id) | ||||
|                 return self.url_result('https://www.youtube.com/watch?v=' + video_id, 'Youtube') | ||||
|             else: | ||||
|                 self.to_screen(u'Downloading playlist PL%s - add --no-playlist to just download video %s' % (playlist_id, video_id)) | ||||
| 
 | ||||
|         # Download playlist videos from API | ||||
|         playlist_id = mobj.group(1) or mobj.group(2) | ||||
|         videos = [] | ||||
| 
 | ||||
|         for page_num in itertools.count(1): | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Filippo Valsorda
						Filippo Valsorda