mirror of
https://github.com/KevinMidboe/spotify-downloader.git
synced 2025-12-08 20:39:08 +00:00
Scrape YouTube by default and optionally use YouTube API to perform searches (#250)
* YouTube scraping * Cleanup GenerateYouTubeURL class * Some minor improvements * Add test to fetch title with and without api key
This commit is contained in:
@@ -23,6 +23,7 @@ default_conf = { 'spotify-downloader':
|
||||
'music-videos-only' : False,
|
||||
'no-spaces' : False,
|
||||
'file-format' : '{artist} - {track_name}',
|
||||
'youtube-api-key' : None,
|
||||
'log-level' : 'INFO' }
|
||||
}
|
||||
|
||||
@@ -40,7 +41,7 @@ def merge(default, config):
|
||||
merged.update(config)
|
||||
return merged
|
||||
|
||||
|
||||
|
||||
def get_config(config_file):
|
||||
try:
|
||||
with open(config_file, 'r') as ymlfile:
|
||||
@@ -57,21 +58,22 @@ 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(manual=config['manual'])
|
||||
parser.set_defaults(no_metadata=config['no-metadata'])
|
||||
parser.set_defaults(avconv=config['avconv'])
|
||||
parser.set_defaults(folder=os.path.relpath(config['folder'], os.getcwd()))
|
||||
parser.set_defaults(overwrite=config['overwrite'])
|
||||
parser.set_defaults(input_ext=config['input-ext'])
|
||||
parser.set_defaults(output_ext=config['output-ext'])
|
||||
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'])
|
||||
|
||||
parser.set_defaults(file_format=config['file-format'])
|
||||
parser.set_defaults(no_spaces=config['youtube-api-key'])
|
||||
parser.set_defaults(log_level=config['log-level'])
|
||||
|
||||
return parser.parse_args(raw_args)
|
||||
|
||||
|
||||
@@ -151,15 +153,18 @@ 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(
|
||||
'-yk', '--youtube-api-key', default=config['youtube-api-key'],
|
||||
help=argparse.SUPPRESS)
|
||||
parser.add_argument(
|
||||
'-c', '--config', default=None,
|
||||
help='Replace with custom config.yml file')
|
||||
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 = override_config(parsed.config, parser)
|
||||
|
||||
parsed.log_level = log_leveller(parsed.log_level)
|
||||
|
||||
|
||||
return parsed
|
||||
|
||||
Reference in New Issue
Block a user