What I’m asking for
A clear setup guide
Do we need a Spotify dev app to make this work?
How does it know we have a premium spotify account vs non premium?
Right now it’s easy to get logged in but still be stuck with API errors and no clear next step.
My setup
- OS: Windows
- Install method:
pipx install git+https://github.com/Googolplexed0/zotify.git
- Spotify Developer app: Development mode
- Redirect URI:
http://127.0.0.1:4381/login
What works
OAuth login works. zotify prints a login link that includes:
redirect_uri=http://127.0.0.1:4381/login
What doesn’t work (main problem)
After login, any track query fails with repeated 429 and then crashes.
Command:
zotify --client-id <my_client_id>
zotify -l
Output:
### WARNING: API ERROR - RETRYING ###
### Status 429: Received an empty response ###
...
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "c:\users\USER\.local\bin\zotify.exe\__main__.py", line 7, in <module>
sys.exit(main())
~~~~^^
File "C:\Users\USER\pipx\venvs\zotify\Lib\site-packages\zotify\__main__.py", line 138, in main
client(args, modes)
~~~~~~^^^^^^^^^^^^^
File "C:\Users\USER\pipx\venvs\zotify\Lib\site-packages\zotify\app.py", line 194, in client
perform_query(args)
~~~~~~~~~~~~~^^^^^^
File "C:\Users\USER\pipx\venvs\zotify\Lib\site-packages\zotify\app.py", line 174, in perform_query
search_and_select()
~~~~~~~~~~~~~~~~~^^
File "C:\Users\USER\pipx\venvs\zotify\Lib\site-packages\zotify\app.py", line 129, in search_and_select
Query(Zotify.DATETIME_LAUNCH).request(' '.join(uris)).execute()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\USER\pipx\venvs\zotify\Lib\site-packages\zotify\api.py", line 1646, in execute
self.fetch_extra_metadata()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\USER\pipx\venvs\zotify\Lib\site-packages\zotify\api.py", line 1538, in fetch_extra_metadata
album_resps = self.fetch_uris_metadata(album_uris.keys(), Album, loader_text=loader_text)
File "C:\Users\USER\pipx\venvs\zotify\Lib\site-packages\zotify\api.py", line 148, in fetch_uris_metadata
return [ContClass.fetch_metadata(uri) for uri in uris]
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "C:\Users\USER\pipx\venvs\zotify\Lib\site-packages\zotify\api.py", line 127, in fetch_metadata
else: raise ValueError("No Metadata Fetched")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: No Metadata Fetched
I also saw:
{
"error": {
"status": 401,
"message": "No token provided"
}
}
What I tried
- Deleted credentials file and re-logged in
- Slowed config values (rate limiter / wait time)
- Disabled extra metadata (genres/lyrics)
- Still always get 429 → crash
- Where do I get this token?
Current Config
{
"DEBUG": "False",
"ROOT_PATH": "/Music/Zotify Music",
"SAVE_CREDENTIALS": "True",
"CREDENTIALS_LOCATION": "C:\Users\USER\AppData\Roaming\Zotify\credentials.json",
"OUTPUT": "",
"OUTPUT_SINGLE": "{artist}/{album}/{artist} - {song_name}",
"OUTPUT_ALBUM": "{artist}/{album}/{album_num}{artist} - {song_name}",
"OUTPUT_PLAYLIST_EXT": "{playlist}/{playlist_num}{artist} - {song_name}",
"OUTPUT_LIKED_SONGS": "Liked Songs/{artist} - {song_name}",
"ROOT_PODCAST_PATH": "/Music/Zotify Podcasts",
"SPLIT_ALBUM_DISCS": "False",
"MAX_FILENAME_LENGTH": "0",
"OPTIMIZED_DOWNLOADING": "False",
"DOWNLOAD_RATE_LIMITER": "0.2",
"BULK_WAIT_TIME": "10.0",
"TEMP_DOWNLOAD_DIR": "",
"DOWNLOAD_PARENT_ALBUM": "False",
"NO_COMPILATION_ALBUMS": "False",
"NO_VARIOUS_ARTISTS": "False",
"NO_ARTIST_APPEARS_ON": "False",
"DISCOG_BY_ALBUM_ARTIST": "False",
"REGEX_ENABLED": "False",
"REGEX_TRACK_SKIP": "",
"REGEX_EPISODE_SKIP": "",
"REGEX_ALBUM_SKIP": "",
"DOWNLOAD_FORMAT": "copy",
"DOWNLOAD_QUALITY": "very_high",
"TRANSCODE_BITRATE": "auto",
"CUSTOM_FFMEPG_ARGS": "",
"SONG_ARCHIVE_LOCATION": "",
"DISABLE_SONG_ARCHIVE": "False",
"DISABLE_DIRECTORY_ARCHIVES": "False",
"SKIP_EXISTING": "True",
"SKIP_PREVIOUSLY_DOWNLOADED": "False",
"EXPORT_M3U8": "False",
"M3U8_LOCATION": "",
"OUTPUT_M3U8": "{name}",
"M3U8_REL_PATHS": "True",
"LIKED_SONGS_ARCHIVE_M3U8": "True",
"LYRICS_TO_METADATA": "False",
"LYRICS_TO_FILE": "False",
"LYRICS_LOCATION": "",
"OUTPUT_LYRICS": "{artist}_{song_name}",
"ALWAYS_CHECK_LYRICS": "False",
"LYRICS_MD_HEADER": "False",
"LANGUAGE": "en",
"MD_DISC_TRACK_TOTALS": "True",
"MD_SAVE_GENRES": "False",
"MD_ALLGENRES": "False",
"MD_GENREDELIMITER": ", ",
"MD_ARTISTDELIMITER": ", ",
"SEARCH_QUERY_SIZE": "3",
"STRICT_LIBRARY_VERIFY": "True",
"ALBUM_ART_JPG_FILE": "False",
"API_CLIENT_ID": "0xxxxxxxxxxxxxxxxxxxxxxxxxx",
"API_CLIENT_LEGACY": "False",
"RETRY_ATTEMPTS": "10",
"CHUNK_SIZE": "20000",
"REDIRECT_ADDRESS": "127.0.0.1",
"PRINT_SPLASH": "False",
"PRINT_PROGRESS_INFO": "True",
"PRINT_SKIPS": "True",
"PRINT_DOWNLOADS": "True",
"PRINT_DOWNLOAD_PROGRESS": "True",
"PRINT_URL_PROGRESS": "True",
"PRINT_ALBUM_PROGRESS": "True",
"PRINT_ARTIST_PROGRESS": "True",
"PRINT_PLAYLIST_PROGRESS": "True",
"PRINT_WARNINGS": "True",
"PRINT_ERRORS": "True",
"PRINT_API_ERRORS": "True",
"STANDARD_INTERFACE": "False",
"FFMPEG_LOG_LEVEL": "error"
}
Please help..
Thanks in advance
What I’m asking for
A clear setup guide
Do we need a Spotify dev app to make this work?
How does it know we have a premium spotify account vs non premium?
Right now it’s easy to get logged in but still be stuck with API errors and no clear next step.
My setup
http://127.0.0.1:4381/loginWhat works
OAuth login works. zotify prints a login link that includes:
redirect_uri=http://127.0.0.1:4381/loginWhat doesn’t work (main problem)
After login, any track query fails with repeated 429 and then crashes.
Command:
Output:
I also saw:
{ "error": { "status": 401, "message": "No token provided" } }What I tried
Current Config
{
"DEBUG": "False",
"ROOT_PATH": "
/Music/Zotify Music",/Music/Zotify Podcasts","SAVE_CREDENTIALS": "True",
"CREDENTIALS_LOCATION": "C:\Users\USER\AppData\Roaming\Zotify\credentials.json",
"OUTPUT": "",
"OUTPUT_SINGLE": "{artist}/{album}/{artist} - {song_name}",
"OUTPUT_ALBUM": "{artist}/{album}/{album_num}{artist} - {song_name}",
"OUTPUT_PLAYLIST_EXT": "{playlist}/{playlist_num}{artist} - {song_name}",
"OUTPUT_LIKED_SONGS": "Liked Songs/{artist} - {song_name}",
"ROOT_PODCAST_PATH": "
"SPLIT_ALBUM_DISCS": "False",
"MAX_FILENAME_LENGTH": "0",
"OPTIMIZED_DOWNLOADING": "False",
"DOWNLOAD_RATE_LIMITER": "0.2",
"BULK_WAIT_TIME": "10.0",
"TEMP_DOWNLOAD_DIR": "",
"DOWNLOAD_PARENT_ALBUM": "False",
"NO_COMPILATION_ALBUMS": "False",
"NO_VARIOUS_ARTISTS": "False",
"NO_ARTIST_APPEARS_ON": "False",
"DISCOG_BY_ALBUM_ARTIST": "False",
"REGEX_ENABLED": "False",
"REGEX_TRACK_SKIP": "",
"REGEX_EPISODE_SKIP": "",
"REGEX_ALBUM_SKIP": "",
"DOWNLOAD_FORMAT": "copy",
"DOWNLOAD_QUALITY": "very_high",
"TRANSCODE_BITRATE": "auto",
"CUSTOM_FFMEPG_ARGS": "",
"SONG_ARCHIVE_LOCATION": "",
"DISABLE_SONG_ARCHIVE": "False",
"DISABLE_DIRECTORY_ARCHIVES": "False",
"SKIP_EXISTING": "True",
"SKIP_PREVIOUSLY_DOWNLOADED": "False",
"EXPORT_M3U8": "False",
"M3U8_LOCATION": "",
"OUTPUT_M3U8": "{name}",
"M3U8_REL_PATHS": "True",
"LIKED_SONGS_ARCHIVE_M3U8": "True",
"LYRICS_TO_METADATA": "False",
"LYRICS_TO_FILE": "False",
"LYRICS_LOCATION": "",
"OUTPUT_LYRICS": "{artist}_{song_name}",
"ALWAYS_CHECK_LYRICS": "False",
"LYRICS_MD_HEADER": "False",
"LANGUAGE": "en",
"MD_DISC_TRACK_TOTALS": "True",
"MD_SAVE_GENRES": "False",
"MD_ALLGENRES": "False",
"MD_GENREDELIMITER": ", ",
"MD_ARTISTDELIMITER": ", ",
"SEARCH_QUERY_SIZE": "3",
"STRICT_LIBRARY_VERIFY": "True",
"ALBUM_ART_JPG_FILE": "False",
"API_CLIENT_ID": "0xxxxxxxxxxxxxxxxxxxxxxxxxx",
"API_CLIENT_LEGACY": "False",
"RETRY_ATTEMPTS": "10",
"CHUNK_SIZE": "20000",
"REDIRECT_ADDRESS": "127.0.0.1",
"PRINT_SPLASH": "False",
"PRINT_PROGRESS_INFO": "True",
"PRINT_SKIPS": "True",
"PRINT_DOWNLOADS": "True",
"PRINT_DOWNLOAD_PROGRESS": "True",
"PRINT_URL_PROGRESS": "True",
"PRINT_ALBUM_PROGRESS": "True",
"PRINT_ARTIST_PROGRESS": "True",
"PRINT_PLAYLIST_PROGRESS": "True",
"PRINT_WARNINGS": "True",
"PRINT_ERRORS": "True",
"PRINT_API_ERRORS": "True",
"STANDARD_INTERFACE": "False",
"FFMPEG_LOG_LEVEL": "error"
}
Please help..
Thanks in advance