mirror of
https://github.com/spotipy-dev/spotipy.git
synced 2026-04-26 16:15:51 +03:00
[GH-ISSUE #363] warning:couldn't write token cache to .cache-xxxxxxxxxx #213
Labels
No labels
api-bug
bug
dependencies
documentation
duplicate
enhancement
external-ide
headless-mode
implicit-grant-flow
invalid
missing-endpoint
pr-welcome
private-api
pull-request
question
spotipy3
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/spotipy#213
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @sifus on GitHub (Mar 27, 2019).
Original GitHub issue: https://github.com/spotipy-dev/spotipy/issues/363
@sifus commented on GitHub (Mar 27, 2019):
Hello, i can't go furether because my token can't go to the cache.
Is someone have a solution ...
@TineshaErskine commented on GitHub (Apr 8, 2019):
Did you ever figure this out?
I'm running into the same issue. I'm running code to look at user's top artist.
I get:
'warning:couldn't write token cache to .cache-C'
and a link to a page that states:
{
"error": {
"status": 401,
"message": "No token provided"
}
}
I have read that a lot of people were having trouble with the token part but I double checked and it seems right:
'token = util.prompt_for_user_token(username, scope, client_id, client_secret, redirect_uri)
sp = spotipy.Spotify(auth=token)'
@HurleybirdJr commented on GitHub (May 11, 2020):
I may have a solution.
Problem:
On Windows 10, Windows Defender tends to block new programs from writing to personal C:/ areas (Documents, Pictures, etc...) with "Ransomware protection" and with proper error catching, would normally say the file/folder doesn't exist.
Solution:
What I did was:
Assuming you're the administrator:
Hope that helps :)
@stephanebruckert commented on GitHub (May 11, 2020):
@HurleybirdJr nice, we can add that to the FAQ
@janecafe commented on GitHub (Jun 20, 2020):
I am having a similar problem myself. I am trying to run my .py script with a batch file on my Windows command line. After it authorizes my Spotify and I enter the URl I was directed to, I get this output:
Couldn't write token to cache at: .cache-{{my spotify username}}
Usage: {the path where my file is} {my spotify username}*
I checked my ransomware on the 3rd party security I use and python.exe is an allowed program.
@stephanebruckert commented on GitHub (Jun 20, 2020):
@jane-dempsey is the same happening if you try to run the python file directly, without the help of a batch file? Perhaps, the batch file doesn't have sufficient authorization and would need to be added to the list of allowed programs, or it should be ran as an administrator
@janecafe commented on GitHub (Jun 20, 2020):
@stephanebruckert I tried the following:
If it is useful, here is my intial start-up code:
It's at this point the .py and .bat files open up a new tab in Google Chrome and I do the same routine and pasting the URL into the command line. After that is when the command line either closes spontaneously or I get the above message I mentioned.
If it's useful, I have a previous version that does work with the difference being the scope: 'user-read-currently-playing'. However, I need the scope 'user-library-read' to implement part of my current code. I hope these details were helpful! And I'm definitely trying various methods!
@stephanebruckert commented on GitHub (Jun 20, 2020):
Also try to run your command line (cmd.exe?) as administrator. I don't know why Windows would need this but I'm hoping to unblock you at the moment.
And, have to say it's really weird that it only happens with specific scopes...
@janecafe commented on GitHub (Jun 21, 2020):
@stephanebruckert I tried running my cmd line as admin, as well as my .bat file and Python 3.8. Same error.
I figured it out! It was a line in my code :) Thank you!!
@stephanebruckert commented on GitHub (Jun 21, 2020):
What was it exactly? Please share all details as it will definitely be useful for others!
@janecafe commented on GitHub (Jun 21, 2020):
Sure did two things, so for future references users can try both:
python -i script.py(source: https://stackoverflow.com/questions/12375173/how-to-stop-python-closing-immediately-when-executed-in-microsoft-windows)@KoenigMaurice commented on GitHub (Jul 16, 2020):
I have found a working solution!
The problem is that spotipy tries to create a file named".cache-USERNAME".
The Spotify Username looks like this: "spotify:user:ID". In windows it is not possible to create files with ":" in it.
Just remove the "spotify:user:". The ID is enough and it works fine!
@rlabbe commented on GitHub (Apr 8, 2021):
I think there can be several reasons for not being able to write to this file; letting pythonw through Defender seems terribly insecure.
As I understand it windows doesn't "like" dotfiles. Somehow or another my .cache file had the Hidden attribute set. I'm pretty sure because I'm using git (ya, that cache file shouldn't be put in the git repository!) When I changed its attribute the program then worked. (https://stackoverflow.com/questions/2118606/why-do-i-get-a-windows-file-permission-error-io-error-13-with-android-sdk-when)
There are ways to work around this by the user; but I suggest that spotify should recognize it is working on Windows and set attributes appropriately.
The workaround (for me) was to initialize the Auth manager with a non-dotfile cache name:
I was able to change the hidden attribute of the .cache file and have it run, but seems clear this will be a problem soon enough in the future.
When looking at the code for CacheFileHandler I saw some unpythonic and potentially erroneous code. It uses the form:
If you get an exception on the read/write the file handle will never be closed. The following is preferred as it ensures the file handle is closed even if there is an exception:
@stephanebruckert commented on GitHub (Apr 8, 2021):
This is interesting. If you all Windows users think we should rename these cache files to not start with a dot, let's do it! It might be a backward-incompatible change, but we are preparing a V3 for this https://github.com/plamere/spotipy/issues/652