2
submitted 1 year ago* (last edited 1 year ago) by Hammerheart@programming.dev to c/python@programming.dev

I am trying to create a playlist with spotify and the spotipy library in python. However, I keep getting a "No token provided" error when making my API request. However, if I use the same token with a curl request, it works! Can someone please help. This is my code:

auth_manager = SpotifyOAuth(client_id=CLIENT,
                            client_secret=SECRET,
                            redirect_uri="http://example.com/",
                            scope=SCOPE,
                            username=spotify_display_name
                            )
token = auth_manager.get_access_token(
    as_dict=False,
    check_cache=True
)

sp = spotipy.Spotify(auth_manager=auth_manager,
                     auth=token
                     )
user_dict = sp.current_user()
user_id = user_dict["id"]
print(f"Welcome, {user_dict['display_name']}")


# SEARCH
# QUERY FORMAT: "track: track-name year: YYYY"

spotify_search_endpoint = "https://api.spotify.com/v1/search/"
test_query = "track:Hangin'+Tough year:1989"

search_parameters = {
    "q": format_query(test_query),
    "type": "track"
}

results = sp.search(q=search_parameters["q"])
print(results)

output:

{'tracks': {'href': 'https://api.spotify.com/v1/search?query=track%3AHangin%27%2BTough%2520year%3A1989&type=track&offset=0&limit=10', 'items': [], 'limit': 10, 'next': None, 'offset': 0, 'previous': None, 'total': 0}}
{
"error": {
"status": 401,
"message": "No token provided"
}
}

This is really frustrating! The authentication is working, otherwise the token wouldn't have been valid for the curl request. I must be doing something wrong with spotipy.

you are viewing a single comment's thread
view the rest of the comments
[-] Hammerheart@programming.dev 1 points 1 year ago* (last edited 1 year ago)

I was formatting my query poorly >:o

specifically, I was too clever by formatting my query like it appears in the URL of the response (ie: replacing spaces with +'s)

Also, the token was working the whole time, I think I was getting the error because I was attempting to access the search results by clicking the "href" in the response, and in doing was I was hitting the endpoint without providing the right header, which caused me to get the 401 error in my browser.

[-] jnovinger@programming.dev 1 points 1 year ago

Hey, sorry we missed helping out!

Did you get everything sorted? Mind adding a "[Solved]" to the beginning of your post title if so?

[-] Hammerheart@programming.dev 1 points 1 year ago

Yea I did, it wasn't my intention when I made the post but I basically got the rubber duck experience. I've edited the title.

[-] jnovinger@programming.dev 1 points 1 year ago

Rubber ducking is the best. Appreciate that, hopefully it helps start a trend.

this post was submitted on 26 Jun 2023
2 points (100.0% liked)

Python

6422 readers
6 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

📅 Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
💓 Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 1 year ago
MODERATORS