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) | ||||
|   -ll {INFO,WARNING,ERROR,DEBUG}, --log-level {INFO,WARNING,ERROR,DEBUG} | ||||
|                         set log verbosity (default: INFO) | ||||
|   -c CONFIG_FILE_PATH --config CONFIG_FILE_PATH | ||||
|                         Replace with custom config.yml file (default: None)                       | ||||
| ``` | ||||
|  | ||||
| #### Download by Name | ||||
| @@ -261,6 +263,11 @@ to override any default options. | ||||
|  | ||||
| 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/) | ||||
| [](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'] | ||||
|  | ||||
|  | ||||
| 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): | ||||
|     parser = argparse.ArgumentParser( | ||||
|         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, | ||||
|         type=str.upper, | ||||
|         help='set log verbosity') | ||||
|     parser.add_argument( | ||||
|         '-c', '--config', default=None, | ||||
|         help='Replace with custom config.yml file')     | ||||
|  | ||||
|     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) | ||||
|      | ||||
|     return parsed | ||||
|   | ||||
		Reference in New Issue
	
	Block a user