mirror of
https://github.com/KevinMidboe/spotify-downloader.git
synced 2025-10-29 18:00:15 +00:00
Merge pull request #233 from ns23/#226-locateCongigFile
Add option for a custom config file (#226)
This commit is contained in:
@@ -140,6 +140,8 @@ optional arguments:
|
|||||||
(default: False)
|
(default: False)
|
||||||
-ll {INFO,WARNING,ERROR,DEBUG}, --log-level {INFO,WARNING,ERROR,DEBUG}
|
-ll {INFO,WARNING,ERROR,DEBUG}, --log-level {INFO,WARNING,ERROR,DEBUG}
|
||||||
set log verbosity (default: INFO)
|
set log verbosity (default: INFO)
|
||||||
|
-c CONFIG_FILE_PATH --config CONFIG_FILE_PATH
|
||||||
|
Replace with custom config.yml file (default: None)
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Download by Name
|
#### Download by Name
|
||||||
@@ -261,6 +263,11 @@ to override any default options.
|
|||||||
|
|
||||||
Also note that config options are overridden by command-line arguments.
|
Also note that config options are overridden by command-line arguments.
|
||||||
|
|
||||||
|
#### Specify the Custom Config File Path
|
||||||
|
|
||||||
|
If you want to use custom `.yml` configuration instead of the default one, you can use `-c`/`--config` option.
|
||||||
|
E.g. `$ python3 spotdl.py -s "adele hello" -c "/home/user/customConfig.yml"`
|
||||||
|
|
||||||
## [Docker Image](https://hub.docker.com/r/ritiek/spotify-downloader/)
|
## [Docker Image](https://hub.docker.com/r/ritiek/spotify-downloader/)
|
||||||
[](https://hub.docker.com/r/ritiek/spotify-downloader)
|
[](https://hub.docker.com/r/ritiek/spotify-downloader)
|
||||||
[](https://hub.docker.com/r/ritiek/spotify-downloader)
|
[](https://hub.docker.com/r/ritiek/spotify-downloader)
|
||||||
|
|||||||
@@ -53,6 +53,28 @@ def get_config(config_file):
|
|||||||
return cfg['spotify-downloader']
|
return cfg['spotify-downloader']
|
||||||
|
|
||||||
|
|
||||||
|
def override_config(config_file, parser, raw_args=None):
|
||||||
|
""" Override default dict with config dict passed as comamnd line argument. """
|
||||||
|
config_file = os.path.realpath(config_file)
|
||||||
|
config = merge(default_conf['spotify-downloader'], get_config(config_file))
|
||||||
|
|
||||||
|
parser.set_defaults(avconv=config['avconv'])
|
||||||
|
parser.set_defaults(download_only_metadata=config['download-only-metadata'])
|
||||||
|
parser.set_defaults(dry_run=config['dry-run'])
|
||||||
|
parser.set_defaults(file_format=config['file-format'])
|
||||||
|
parser.set_defaults(folder=os.path.relpath(config['folder'], os.getcwd()))
|
||||||
|
parser.set_defaults(input_ext=config['input-ext'])
|
||||||
|
parser.set_defaults(log_level=config['log-level'])
|
||||||
|
parser.set_defaults(manual=config['manual'])
|
||||||
|
parser.set_defaults(music_videos_only=config['music-videos-only'])
|
||||||
|
parser.set_defaults(no_metadata=config['no-metadata'])
|
||||||
|
parser.set_defaults(no_spaces=config['no-spaces'])
|
||||||
|
parser.set_defaults(output_ext=config['output-ext'])
|
||||||
|
parser.set_defaults(overwrite=config['overwrite'])
|
||||||
|
|
||||||
|
return parser.parse_args(raw_args)
|
||||||
|
|
||||||
|
|
||||||
def get_arguments(raw_args=None, to_group=True, to_merge=True):
|
def get_arguments(raw_args=None, to_group=True, to_merge=True):
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description='Download and convert songs from Spotify, Youtube etc.',
|
description='Download and convert songs from Spotify, Youtube etc.',
|
||||||
@@ -129,8 +151,15 @@ def get_arguments(raw_args=None, to_group=True, to_merge=True):
|
|||||||
choices=_LOG_LEVELS_STR,
|
choices=_LOG_LEVELS_STR,
|
||||||
type=str.upper,
|
type=str.upper,
|
||||||
help='set log verbosity')
|
help='set log verbosity')
|
||||||
|
parser.add_argument(
|
||||||
|
'-c', '--config', default=None,
|
||||||
|
help='Replace with custom config.yml file')
|
||||||
|
|
||||||
parsed = parser.parse_args(raw_args)
|
parsed = parser.parse_args(raw_args)
|
||||||
|
|
||||||
|
if parsed.config is not None and to_merge:
|
||||||
|
parsed = override_config(parsed.config,parser)
|
||||||
|
|
||||||
parsed.log_level = log_leveller(parsed.log_level)
|
parsed.log_level = log_leveller(parsed.log_level)
|
||||||
|
|
||||||
return parsed
|
return parsed
|
||||||
|
|||||||
Reference in New Issue
Block a user