mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-21 20:46:36 -05:00
Add --flat-playlist option (Closes #4003)
This commit is contained in:
parent
b1edd7a48a
commit
057a5206cc
3 changed files with 15 additions and 2 deletions
|
@ -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 @@ def process_ie_result(self, ie_result, download=True, extra_info={}):
|
||||||
|
|
||||||
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 _hide_login_info(opts):
|
||||||
'--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(
|
||||||
|
|
Loading…
Reference in a new issue