diff options
Diffstat (limited to 'youtube_dl/__init__.py')
-rw-r--r-- | youtube_dl/__init__.py | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index f46143e01..f60fb841e 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -47,7 +47,7 @@ from .FileDownloader import * from .InfoExtractors import gen_extractors from .PostProcessor import * -def parseOpts(): +def parseOpts(overrideArguments=None): def _readOptions(filename_bytes): try: optionf = open(filename_bytes) @@ -238,7 +238,16 @@ def parseOpts(): action='store_true', dest='autonumber', help='number downloaded files starting from 00000', default=False) filesystem.add_option('-o', '--output', - dest='outtmpl', metavar='TEMPLATE', help='output filename template. Use %(title)s to get the title, %(uploader)s for the uploader name, %(uploader_id)s for the uploader nickname if different, %(autonumber)s to get an automatically incremented number, %(ext)s for the filename extension, %(upload_date)s for the upload date (YYYYMMDD), %(extractor)s for the provider (youtube, metacafe, etc), %(id)s for the video id and %% 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\' .') + dest='outtmpl', metavar='TEMPLATE', + help=('output filename template. Use %(title)s to get the title, ' + '%(uploader)s for the uploader name, %(uploader_id)s for the uploader nickname if different, ' + '%(autonumber)s to get an automatically incremented number, ' + '%(ext)s for the filename extension, %(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. ' + '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('--autonumber-size', dest='autonumber_size', metavar='NUMBER', help='Specifies the number of digits in %(autonumber)s when it is present in output filename template or --autonumber option is given') @@ -291,16 +300,21 @@ def parseOpts(): parser.add_option_group(authentication) parser.add_option_group(postproc) - xdg_config_home = os.environ.get('XDG_CONFIG_HOME') - if xdg_config_home: - userConfFile = os.path.join(xdg_config_home, 'youtube-dl.conf') + if overrideArguments is not None: + opts, args = parser.parse_args(overrideArguments) + if opts.verbose: + print(u'[debug] Override config: ' + repr(overrideArguments)) else: - userConfFile = os.path.join(os.path.expanduser('~'), '.config', 'youtube-dl.conf') - systemConf = _readOptions('/etc/youtube-dl.conf') - userConf = _readOptions(userConfFile) - commandLineConf = sys.argv[1:] - argv = systemConf + userConf + commandLineConf - opts, args = parser.parse_args(argv) + xdg_config_home = os.environ.get('XDG_CONFIG_HOME') + if xdg_config_home: + userConfFile = os.path.join(xdg_config_home, 'youtube-dl.conf') + else: + userConfFile = os.path.join(os.path.expanduser('~'), '.config', 'youtube-dl.conf') + systemConf = _readOptions('/etc/youtube-dl.conf') + userConf = _readOptions(userConfFile) + commandLineConf = sys.argv[1:] + argv = systemConf + userConf + commandLineConf + opts, args = parser.parse_args(argv) if opts.verbose: print(u'[debug] System config: ' + repr(systemConf)) @@ -309,8 +323,8 @@ def parseOpts(): return parser, opts, args -def _real_main(): - parser, opts, args = parseOpts() +def _real_main(argv=None): + parser, opts, args = parseOpts(argv) # Open appropriate CookieJar if opts.cookiefile is None: @@ -544,9 +558,9 @@ def _real_main(): sys.exit(retcode) -def main(): +def main(argv=None): try: - _real_main() + _real_main(argv) except DownloadError: sys.exit(1) except SameFileError: |