From 3f9a142bf8616a34c0f2e6cac24cfa5ea7c0df3d Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 27 Mar 2022 00:13:23 +0100 Subject: [PATCH] use oauth to allow login without browser --- SpotifyAutoPlaylistCreator.py | 22 ++++++++++++++++------ config/settings-creator-example.json | 3 ++- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/SpotifyAutoPlaylistCreator.py b/SpotifyAutoPlaylistCreator.py index 4b38952..e0630dc 100644 --- a/SpotifyAutoPlaylistCreator.py +++ b/SpotifyAutoPlaylistCreator.py @@ -3,27 +3,36 @@ from typing import Dict, List import spotipy from TheCodeLabs_BaseUtils.DefaultLogger import DefaultLogger -from spotipy.oauth2 import SpotifyPKCE +from spotipy.oauth2 import SpotifyOAuth LOG_FORMAT = '[%(levelname)-7s] - %(asctime)s - %(message)s' LOGGER = DefaultLogger().create_logger_if_not_exists('SpotifyAutoPlaylistCreator', logFormat=LOG_FORMAT) class SpotifyAutoPlaylistCreator: - def __init__(self, clientID: str, clientSecret: str, playlistInfo: List[Dict[str, str]], - destinationPlaylistInfo: Dict[str, str], numberOfTracks: int, redirectUrl: str): + def __init__(self, clientID: str, + clientSecret: str, + playlistInfo: List[Dict[str, str]], + destinationPlaylistInfo: Dict[str, str], + numberOfTracks: int, + redirectUrl: str, + openBrowser: bool): self._clientID = clientID self._clientSecret = clientSecret self._playlistInfo = playlistInfo self._destinationPlaylistInfo = destinationPlaylistInfo self._numberOfTracks = numberOfTracks self._redirectUrl = redirectUrl + self._openBrowser = openBrowser self._spotify = self.login() def login(self) -> spotipy.Spotify: - client_credentials_manager = SpotifyPKCE(client_id=self._clientID, redirect_uri=self._redirectUrl, - scope='playlist-modify-private,playlist-modify-public') + client_credentials_manager = SpotifyOAuth(client_id=self._clientID, + client_secret=self._clientSecret, + redirect_uri=self._redirectUrl, + scope='playlist-modify-private,playlist-modify-public', + open_browser=self._openBrowser) return spotipy.Spotify(client_credentials_manager=client_credentials_manager) def run(self): @@ -101,7 +110,8 @@ if __name__ == '__main__': SETTINGS['playlists'], SETTINGS['destinationPlaylist'], SETTINGS['numberOfTracks'], - SETTINGS['redirectUrl']) + SETTINGS['redirectUrl'], + SETTINGS['openBrowser']) spotifyBackup.run() diff --git a/config/settings-creator-example.json b/config/settings-creator-example.json index 4a287ca..3b95af2 100644 --- a/config/settings-creator-example.json +++ b/config/settings-creator-example.json @@ -15,5 +15,6 @@ "id": "" }, "numberOfTracks": 10, - "redirectUrl": "http://localhost:8080" + "redirectUrl": "http://localhost:8080", + "openBrowser": false } \ No newline at end of file -- GitLab