From d215ce685d9f90911d76a005e4091bd487e6c993 Mon Sep 17 00:00:00 2001 From: Manveer Basra Date: Tue, 30 Oct 2018 14:12:37 -0400 Subject: [PATCH] Exposed Spotify Client ID/Secret in config.yml --- spotdl/handle.py | 14 ++++++++++++++ spotdl/spotdl.py | 1 + spotdl/spotify_tools.py | 32 ++++++++++++++++++++++---------- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/spotdl/handle.py b/spotdl/handle.py index f76f46c..fdfe719 100644 --- a/spotdl/handle.py +++ b/spotdl/handle.py @@ -34,6 +34,8 @@ default_conf = { "skip": None, "write-successful": None, "log-level": "INFO", + "spotify_client_id": "4fe3fecfe5334023a1472516cc99d805", + "spotify_client_secret": "0f02b7c483c04257984695007a4a8d5c" } } @@ -260,6 +262,18 @@ def get_arguments(raw_args=None, to_group=True, to_merge=True): default=config["write-successful"], help="path to file to write successful tracks to", ) + parser.add_argument( + "-sci", + "--spotify-client-id", + default=config["spotify_client_id"], + help=argparse.SUPPRESS + ) + parser.add_argument( + "-scs", + "--spotify-client-secret", + default=config["spotify_client_secret"], + help=argparse.SUPPRESS + ) parser.add_argument( "-c", "--config", default=None, help="path to custom config.yml file" ) diff --git a/spotdl/spotdl.py b/spotdl/spotdl.py index 8e74360..18c4a1b 100644 --- a/spotdl/spotdl.py +++ b/spotdl/spotdl.py @@ -51,6 +51,7 @@ def main(): internals.filter_path(const.args.folder) youtube_tools.set_api_key() + spotify_tools.set_client_credentials() logzero.setup_default_logger(formatter=const._formatter, level=const.args.log_level) diff --git a/spotdl/spotify_tools.py b/spotdl/spotify_tools.py index 2a60284..0349c0f 100644 --- a/spotdl/spotify_tools.py +++ b/spotdl/spotify_tools.py @@ -12,28 +12,40 @@ import os from spotdl import const from spotdl import internals +spotify = None + def generate_token(): - """ Generate the token. Please respect these credentials :) """ - credentials = oauth2.SpotifyClientCredentials( - client_id="4fe3fecfe5334023a1472516cc99d805", - client_secret="0f02b7c483c04257984695007a4a8d5c", - ) + """ Generate the token. """ + if const.args.spotify_client_id and const.args.spotify_client_secret: + credentials = oauth2.SpotifyClientCredentials( + client_id=const.args.spotify_client_id, + client_secret=const.args.spotify_client_secret, + ) + else: + # Please respect these credentials :) + credentials = oauth2.SpotifyClientCredentials( + client_id="4fe3fecfe5334023a1472516cc99d805", + client_secret="0f02b7c483c04257984695007a4a8d5c", + ) token = credentials.get_access_token() return token def refresh_token(): - """ Refresh expired token""" + """ Refresh expired token. """ global spotify new_token = generate_token() spotify = spotipy.Spotify(auth=new_token) -# token is mandatory when using Spotify's API -# https://developer.spotify.com/news-stories/2017/01/27/removing-unauthenticated-calls-to-the-web-api/ -_token = generate_token() -spotify = spotipy.Spotify(auth=_token) +def set_client_credentials(): + """ Setup and initialize Spotipy object. """ + # token is mandatory when using Spotify's API + # https://developer.spotify.com/news-stories/2017/01/27/removing-unauthenticated-calls-to-the-web-api/ + global spotify + token = generate_token() + spotify = spotipy.Spotify(auth=token) def generate_metadata(raw_song):