youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 1b753cb3344837fb69e9bfde89d03161d33ba3ff
parent 36a826a50dc5e53af8355f1233cc4f3ceba2e61b
Author: Philipp Hagemeister <phihag@phihag.de>
Date:   Tue,  3 Dec 2013 13:04:02 +0100

Add Windows configuration file locations (#1881)

Diffstat:
MREADME.md | 2+-
Myoutube_dl/__init__.py | 29++++++++++++++++++++++-------
2 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/README.md b/README.md @@ -183,7 +183,7 @@ which means you can modify it, redistribute it or use it however you like. # CONFIGURATION -You can configure youtube-dl by placing default arguments (such as `--extract-audio --no-mtime` to always extract the audio and not copy the mtime) into `/etc/youtube-dl.conf` and/or `~/.config/youtube-dl.conf`. +You can configure youtube-dl by placing default arguments (such as `--extract-audio --no-mtime` to always extract the audio and not copy the mtime) into `/etc/youtube-dl.conf` and/or `~/.config/youtube-dl.conf`. On Windows, the configuration file locations are `%APPDATA%\youtube-dl\config` and `C:\Users\<Yourname>\youtube-dl.conf`. # OUTPUT TEMPLATE diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py @@ -81,15 +81,13 @@ from .PostProcessor import ( def parseOpts(overrideArguments=None): - def _readOptions(filename_bytes): + def _readOptions(filename_bytes, def=[]): try: optionf = open(filename_bytes) except IOError: - return [] # silently skip if file is not present + return def # silently skip if file is not present try: - res = [] - for l in optionf: - res += shlex.split(l, comments=True) + res = [shlex.split(l, comments=True) for l in optionf] finally: optionf.close() return res @@ -419,6 +417,8 @@ def parseOpts(overrideArguments=None): if opts.verbose: write_string(u'[debug] Override config: ' + repr(overrideArguments) + '\n') else: + systemConf = _readOptions('/etc/youtube-dl.conf') + xdg_config_home = os.environ.get('XDG_CONFIG_HOME') if xdg_config_home: userConfFile = os.path.join(xdg_config_home, 'youtube-dl', 'config') @@ -428,8 +428,23 @@ def parseOpts(overrideArguments=None): userConfFile = os.path.join(os.path.expanduser('~'), '.config', 'youtube-dl', 'config') if not os.path.isfile(userConfFile): userConfFile = os.path.join(os.path.expanduser('~'), '.config', 'youtube-dl.conf') - systemConf = _readOptions('/etc/youtube-dl.conf') - userConf = _readOptions(userConfFile) + userConf = _readOptions(userConfFile, None) + + if userConf is None: + appdata_dir = os.environ.get('appdata') + if appdata_dir: + userConf = _readOptions( + os.path.join(appdata_dir, 'youtube-dl', 'config'), + def=None) + + if userConf is None: + userConfFile = _readOptions( + os.path.join(os.path.expanduser('~'), 'youtube-dl.conf'), + def=None) + + if userConf is None: + userConf = [] + commandLineConf = sys.argv[1:] argv = systemConf + userConf + commandLineConf opts, args = parser.parse_args(argv)