mirror of
https://github.com/spotipy-dev/spotipy.git
synced 2026-04-26 16:15:51 +03:00
[GH-ISSUE #579] Getting error 'Couldn't read cache at: .cache' with example code #348
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#348
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 @kbots-tech on GitHub (Sep 30, 2020).
Original GitHub issue: https://github.com/spotipy-dev/spotipy/issues/579
Describe the bug
Using the example auth code I get the error 'Couldn't read cache at: .cache' I've tried looking around but can't find a reference to this specific error anywhere. I'm using the Online IDE repl.it but it seems users have used it with no trouble before looking at other projects
Your code
import spotipy
from spotipy.oauth2 import SpotifyOAuth
scope = "user-library-read"
sp = spotipy.Spotify(auth_manager=SpotifyOAuth(scope=scope))
results = sp.current_user_saved_tracks()
for idx, item in enumerate(results['items']):
track = item['track']
print(idx, track['artists'][0]['name'], " – ", track['name'])
Environment:
@Quizz1Cal commented on GitHub (Oct 3, 2020):
(note: I am a newbie to open-source contributing, feedback on my correctness would be appreciated)
This is expected behaviour for (initial) runs of Spotipy as far the current version allows. Line 310 of spotipy/oauth2.py illustrates that Spotipy throws this warning if a cache file for tokens has not yet been instantiated. This is a relatively new feature (see #567) to allow explicit specification of cache files to be optional, hence probably why you can't find other documentation.
This shouldn't prevent your code from working. On repeat executions, the error goes away regardless (unless you keep changing the working directory...!); otherwise, I guess if you instantiate the file
.cachein the working directory prior to usingSpotifyOAuth()you can avoid the warning, but this feels impractical. Hope that helps!@stephanebruckert commented on GitHub (Oct 3, 2020):
This is true @Quizz1Cal, it is just a warning so don't worry about it. Probably that your current environment (repl.it) doesn't allow storing new files. Can you open an issue on their side to ask if this is expected?
In the meantime, let us know if this issue prevents you from using any other features
@kbots-tech commented on GitHub (Oct 4, 2020):
That may be it, I ended up manually doing the oauth which took a bit more time but ended up working, thanks. It did continue on every run though so I was unable to use this library. Thanks for making it though if it worked in my enviroment it definitely would have been a great help but not the fault of you then but on their end.
@feifeinew commented on GitHub (Jan 21, 2021):
I had the exact same question! I still didn't figure it out. Any solution would be appreciated.
@PrynsTag commented on GitHub (Jul 16, 2023):
Got the same issue. Just run it in sudo (linux) or Administrator (windows) and it will create .cache file the same directory it was run.
@dieser-niko commented on GitHub (Jul 16, 2023):
Probably not a very good idea. It certainly works, but using admin perms to just run a simple script is not recommended.
@WombatCombatMaciej commented on GitHub (Aug 19, 2023):
Hey! I know the problem is 2 years old but I solved it on my Raspberry PI. The problem was folder permission! Working directly in home folder is not good idea :S
@andystumpf commented on GitHub (Jan 18, 2024):
This worked for me
sudo chmod -R u+w /root/.spotdl/.spotipy@jonathancaudill commented on GitHub (Jun 22, 2024):
can you please elaborate? stuck here as well. the .cache file exists for me too...
@bwareham commented on GitHub (Dec 18, 2024):
TL;DR try substituting the MemoryCacheHandler for the default CacheFileHandler
Like others, I ran into the the read/write cache errors. In my case, I was using Spotipy from a Django management command. When I ran it from via manage.py inside the project folder it worked fine, but when I scheduled it as a cronjob I'd get the cache errors. Mostly it was just an annoyance -- hundreds of error messages in the log every time the command ran. But it did occasionally prevent execution of the routine.
The problem appeared to be that cron by default runs from a root folder that I don't have sufficient permissions for on my shared server.
After reading a whole lot of suggested fixes I first tried to force cron to run the command from the project folder. When I couldn't make that work, I tried using the DjangoSessionCacheHandler. After fumbling around with the code, I finally got it installed, but got an error saying it required a position argument. I assume it was telling me I needed to configure the session middleware somehow, but that was outside the scope of my knowledge. (Someone who knows better than me can fill in details here.)
I then tried the MemoryCacheHandler and, so far, it has worked like a charm. Here's the relevant code:
Hope this helps others who have encountered this problem.
@dieser-niko commented on GitHub (Dec 18, 2024):
Alternatively you can create your own cache handler to store the token in a database for example