X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Foptions.py;h=a018c1d711ffcb67997a15d4fdcec528cb7f99ba;hb=c11125f9ed952f9b7ebd06c15eacadcc6005dd8c;hp=98e20d5494b2a0285e98e97b26c828af857dc6ae;hpb=f24a5a2faab20e13c3a9f752f3d41fe66212d2c6;p=youtube-dl diff --git a/youtube_dl/options.py b/youtube_dl/options.py index 98e20d549..a018c1d71 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -5,9 +5,12 @@ import optparse import shlex import sys -from .utils import ( +from .compat import ( compat_expanduser, compat_getenv, + compat_kwargs, +) +from .utils import ( get_term_width, write_string, ) @@ -106,11 +109,11 @@ def parseOpts(overrideArguments=None): kw = { 'version': __version__, 'formatter': fmt, - 'usage': '%prog [options] url [url...]', + 'usage': '%prog [OPTIONS] URL [URL...]', 'conflict_handler': 'resolve', } - parser = optparse.OptionParser(**kw) + parser = optparse.OptionParser(**compat_kwargs(kw)) general = optparse.OptionGroup(parser, 'General Options') general.add_option( @@ -160,7 +163,10 @@ def parseOpts(overrideArguments=None): general.add_option( '--ignore-config', 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/config ' + '(%APPDATA%/youtube-dl/config.txt on Windows)') general.add_option( '--flat-playlist', action='store_const', dest='extract_flat', const='in_playlist', @@ -219,7 +225,7 @@ def parseOpts(overrideArguments=None): selection.add_option( '--no-playlist', action='store_true', dest='noplaylist', default=False, - help='download only the currently playing video') + help='If the URL refers to a video and a playlist, download only the video.') selection.add_option( '--age-limit', metavar='YEARS', dest='age_limit', default=None, type=int, @@ -259,7 +265,17 @@ def parseOpts(overrideArguments=None): video_format.add_option( '-f', '--format', action='store', dest='format', metavar='FORMAT', default=None, - help='video format code, specify the order of preference using slashes: -f 22/17/18 . -f mp4 , -f m4a and -f flv are also supported. You can also use the special names "best", "bestvideo", "bestaudio", "worst", "worstvideo" and "worstaudio". By default, youtube-dl will pick the best quality. Use commas to download multiple audio formats, such as -f 136/137/mp4/bestvideo,140/m4a/bestaudio') + help=( + 'video format code, specify the order of preference using' + ' slashes: -f 22/17/18 . -f mp4 , -f m4a and -f flv are also' + ' supported. You can also use the special names "best",' + ' "bestvideo", "bestaudio", "worst", "worstvideo" and' + ' "worstaudio". By default, youtube-dl will pick the best quality.' + ' Use commas to download multiple audio formats, such as' + ' -f 136/137/mp4/bestvideo,140/m4a/bestaudio.' + ' You can merge the video and audio of two formats into a single' + ' file using -f + (requires ffmpeg or' + ' avconv), for example -f bestvideo+bestaudio.')) video_format.add_option( '--all-formats', action='store_const', dest='format', const='all', @@ -333,6 +349,10 @@ def parseOpts(overrideArguments=None): '--test', action='store_true', dest='test', default=False, 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.add_option( @@ -464,10 +484,6 @@ def parseOpts(overrideArguments=None): filesystem.add_option( '--id', default=False, action='store_true', dest='useid', help='use only video ID in file name') - filesystem.add_option( - '-A', '--auto-number', - action='store_true', dest='autonumber', default=False, - help='number downloaded files starting from 00000') filesystem.add_option( '-o', '--output', dest='outtmpl', metavar='TEMPLATE', @@ -479,10 +495,12 @@ def parseOpts(overrideArguments=None): '%(format_id)s for the unique id of the format (like Youtube\'s itags: "137"), ' '%(upload_date)s for the upload date (YYYYMMDD), ' '%(extractor)s for the provider (youtube, metacafe, etc), ' - '%(id)s for the video id, %(playlist)s for the playlist the video is in, ' - '%(playlist_index)s for the position in the playlist and %% for a literal percent. ' + '%(id)s for the video id, ' + '%(playlist_title)s, %(playlist_id)s, or %(playlist)s (=title if present, ID otherwise) for the playlist the video is in, ' + '%(playlist_index)s for the position in the playlist. ' '%(height)s and %(width)s for the width and height of the video format. ' '%(resolution)s for a textual description of the resolution of the video format. ' + '%% for a literal percent. ' 'Use - to output to stdout. Can also be used to download to a different directory, ' 'for example with -o \'/my/downloads/%(uploader)s/%(title)s-%(id)s.%(ext)s\' .')) filesystem.add_option( @@ -493,6 +511,10 @@ def parseOpts(overrideArguments=None): '--restrict-filenames', action='store_true', dest='restrictfilenames', default=False, help='Restrict filenames to only ASCII characters, and avoid "&" and spaces in filenames') + filesystem.add_option( + '-A', '--auto-number', + action='store_true', dest='autonumber', default=False, + help='[deprecated; use -o "%(autonumber)s-%(title)s.%(ext)s" ] number downloaded files starting from 00000') filesystem.add_option( '-t', '--title', action='store_true', dest='usetitle', default=False, @@ -607,7 +629,7 @@ def parseOpts(overrideArguments=None): postproc.add_option( '--exec', metavar='CMD', dest='exec_cmd', - help='Execute a command on the file after downloading, similar to find\'s -exec syntax. Example: --exec \'adb push {} /sdcard/Music/ && rm {}\'' ) + help='Execute a command on the file after downloading, similar to find\'s -exec syntax. Example: --exec \'adb push {} /sdcard/Music/ && rm {}\'') parser.add_option_group(general) parser.add_option_group(selection)