Add --flat-playlist option (Closes #4003)
This commit is contained in:
		@@ -165,6 +165,8 @@ class YoutubeDL(object):
 | 
				
			|||||||
                       'auto' for elaborate guessing
 | 
					                       'auto' for elaborate guessing
 | 
				
			||||||
    encoding:          Use this encoding instead of the system-specified.
 | 
					    encoding:          Use this encoding instead of the system-specified.
 | 
				
			||||||
    extract_flat:      Do not resolve URLs, return the immediate result.
 | 
					    extract_flat:      Do not resolve URLs, return the immediate result.
 | 
				
			||||||
 | 
					                       Pass in 'in_playlist' to only show this behavior for
 | 
				
			||||||
 | 
					                       playlist items.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    The following parameters are not used by YoutubeDL itself, they are used by
 | 
					    The following parameters are not used by YoutubeDL itself, they are used by
 | 
				
			||||||
    the FileDownloader:
 | 
					    the FileDownloader:
 | 
				
			||||||
@@ -568,8 +570,13 @@ class YoutubeDL(object):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        result_type = ie_result.get('_type', 'video')
 | 
					        result_type = ie_result.get('_type', 'video')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if self.params.get('extract_flat', False):
 | 
					        if result_type in ('url', 'url_transparent'):
 | 
				
			||||||
            if result_type in ('url', 'url_transparent'):
 | 
					            extract_flat = self.params.get('extract_flat', False)
 | 
				
			||||||
 | 
					            if ((extract_flat == 'in_playlist' and 'playlist' in extra_info) or
 | 
				
			||||||
 | 
					                    extract_flat is True):
 | 
				
			||||||
 | 
					                self.add_extra_info(ie_result, extra_info)
 | 
				
			||||||
 | 
					                if self.params.get('forcejson', False):
 | 
				
			||||||
 | 
					                    self.to_stdout(json.dumps(ie_result))
 | 
				
			||||||
                return ie_result
 | 
					                return ie_result
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if result_type == 'video':
 | 
					        if result_type == 'video':
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -367,6 +367,7 @@ def _real_main(argv=None):
 | 
				
			|||||||
        'youtube_include_dash_manifest': opts.youtube_include_dash_manifest,
 | 
					        'youtube_include_dash_manifest': opts.youtube_include_dash_manifest,
 | 
				
			||||||
        'encoding': opts.encoding,
 | 
					        'encoding': opts.encoding,
 | 
				
			||||||
        'exec_cmd': opts.exec_cmd,
 | 
					        'exec_cmd': opts.exec_cmd,
 | 
				
			||||||
 | 
					        'extract_flat': opts.extract_flat,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    with YoutubeDL(ydl_opts) as ydl:
 | 
					    with YoutubeDL(ydl_opts) as ydl:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -159,6 +159,11 @@ def parseOpts(overrideArguments=None):
 | 
				
			|||||||
        '--ignore-config',
 | 
					        '--ignore-config',
 | 
				
			||||||
        action='store_true',
 | 
					        action='store_true',
 | 
				
			||||||
        help='Do not read configuration files. When given in the global configuration file /etc/youtube-dl.conf: do not read the user configuration in ~/.config/youtube-dl.conf (%APPDATA%/youtube-dl/config.txt on Windows)')
 | 
					        help='Do not read configuration files. When given in the global configuration file /etc/youtube-dl.conf: do not read the user configuration in ~/.config/youtube-dl.conf (%APPDATA%/youtube-dl/config.txt on Windows)')
 | 
				
			||||||
 | 
					    general.add_option(
 | 
				
			||||||
 | 
					        '--flat-playlist',
 | 
				
			||||||
 | 
					        action='store_const', dest='extract_flat', const='in_playlist',
 | 
				
			||||||
 | 
					        default=False,
 | 
				
			||||||
 | 
					        help='Do not extract the videos of a playlist, only list them.')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    selection = optparse.OptionGroup(parser, 'Video Selection')
 | 
					    selection = optparse.OptionGroup(parser, 'Video Selection')
 | 
				
			||||||
    selection.add_option(
 | 
					    selection.add_option(
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user