Skip to content

Commit 7e0b707

Browse files
committed
Added option to authenticate using client secret
1 parent 3bbbf8b commit 7e0b707

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

settings.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ theme = cyborg
55
[spotify]
66
client_id = <Your client id>
77
redirect_uri = http://localhost:8888/callback
8+
client_secret =
89

910
[lyrics]
1011
empty_lyric_replacement = ♫

src/settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ def reset_default_configs():
1010
config.add_section("spotify")
1111
config.set("spotify", "client_id", "<Your client id>")
1212
config.set("spotify", "redirect_uri", "http://localhost:8888/callback")
13+
config.set("spotify", "client_secret", "")
1314

1415
config.add_section("lyrics")
1516
config.set("lyrics", "empty_lyric_replacement", chr(int("266B", 16)))
@@ -22,6 +23,7 @@ def reset_default_configs():
2223

2324
CLIENT_ID = config.get("spotify", "client_id")
2425
REDIRECT_URI = config.get("spotify", "redirect_uri")
26+
CLIENT_SECRET = config.get("spotify", "client_secret") or None
2527

2628
theme = config.get("theme", "theme")
2729

src/spotify_client.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import spotipy
2-
from spotipy.oauth2 import SpotifyPKCE
2+
from spotipy.oauth2 import SpotifyPKCE, SpotifyOAuth
33
import settings
44

55
SCOPE = "user-read-currently-playing"
@@ -11,7 +11,13 @@ def create_spotify_client(scopes:list = [SCOPE]) -> spotipy.Spotify:
1111
scope_str += ","
1212
scope_str = scope_str[:-1]
1313

14-
auth_manager = SpotifyPKCE(client_id=settings.CLIENT_ID, redirect_uri=settings.REDIRECT_URI, scope=scope_str)
14+
if not settings.CLIENT_SECRET:
15+
print("Authenticating using PKCE")
16+
auth_manager = SpotifyPKCE(client_id=settings.CLIENT_ID, redirect_uri=settings.REDIRECT_URI, scope=scope_str)
17+
else:
18+
print("Authenticating using OAuth")
19+
auth_manager = SpotifyOAuth(client_id=settings.CLIENT_ID, client_secret=settings.CLIENT_SECRET, redirect_uri=settings.REDIRECT_URI, scope=scope_str)
20+
1521
auth_manager.get_access_token()
1622

1723
client = spotipy.Spotify(auth_manager=auth_manager)

0 commit comments

Comments
 (0)