mirror of
https://github.com/Googolplexed0/zotify.git
synced 2026-04-25 14:25:50 +03:00
[GH-ISSUE #153] [Bug Report] Artist Parse Metadata Recursive Children IndexError #138
Labels
No labels
bug
considering
discussion
documentation
enhancement
enhancement
good first issue
help wanted
pull-request
question
stale
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/zotify#138
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 @RGPZ on GitHub (Jan 20, 2026).
Original GitHub issue: https://github.com/Googolplexed0/zotify/issues/153
Originally assigned to: @Googolplexed0 on GitHub.
Zotify Version
0.15.1 (new-hierarchy update, at least I assume so)
Bug Description
I'm getting told that list index out of range when trying to download an artist link
Bug Triggering Command
zotify --client-id X (Artist link)
Error Traceback / Logs
Error:
File "", line 198, in run_module_as_main
File "", line 88, in run_code
File "c:\users\liamm.local\bin\zotify.exe_main.py", line 6, in
sys.exit(main())
~~~~^^
File "C:\Users\Liamm\pipx\venvs\zotify\Lib\site-packages\zotify_main.py", line 143, in main
client(args, modes)
~~~~~~^^^^^^^^^^^^^
File "C:\Users\Liamm\pipx\venvs\zotify\Lib\site-packages\zotify\app.py", line 186, in client
perform_query(args)
~~~~~~~~~~~~~^^^^^^
File "C:\Users\Liamm\pipx\venvs\zotify\Lib\site-packages\zotify\app.py", line 178, in perform_query
raise e
File "C:\Users\Liamm\pipx\venvs\zotify\Lib\site-packages\zotify\app.py", line 149, in perform_query
Query(Zotify.DATETIME_LAUNCH).request(urls).execute()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\Liamm\pipx\venvs\zotify\Lib\site-packages\zotify\api.py", line 1506, in execute
self.parse_query_metadata(self.fetch_query_metadata())
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Liamm\pipx\venvs\zotify\Lib\site-packages\zotify\api.py", line 1363, in parse_query_metadata
recurse_type = recurs_children[0].class # assumes all Containers inside objs are the same class
~~~~~~~~~~~~~~~^^^
IndexError: list index out of range
Logs:
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): apresolve.spotify.com:443
DEBUG:urllib3.connectionpool:https://apresolve.spotify.com:443 "GET /?type=accesspoint HTTP/1.1" 200 None
INFO:Librespot:Session:Created new session! device_id: cb8b5352feb313f5f78431bf13ee35b77f36e397, ap: ap-gae2.spotify.com:4070
INFO:Librespot:Session:Connection successfully!
INFO:Librespot:Session:Session.Receiver started
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): apresolve.spotify.com:443
DEBUG:urllib3.connectionpool:https://apresolve.spotify.com:443 "GET /?type=spclient HTTP/1.1" 200 None
INFO:Librespot:Session:Skipping 02
INFO:Librespot:Session:Received license_version: 0
INFO:Librespot:Session:Received country_code: NZ
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): apresolve.spotify.com:443
DEBUG:Librespot:Session:Parsed product info: {'type': 'premium', 'ab-ad-player-targeting': '1', 'ab-watch-now': '0', 'ab_recently_played_feature_time_filter_threshold': 'com.spotify.gaia=30,driving-mode=120,spotify%3Ainternal%3Astartpage=30', 'ad-formats-preroll-video': '0', 'ad-session-persistence': '1', 'ads': '0', 'app-developer': '0', 'arsenal_country': '1', 'audio-preview-url-template': 'https://p.scdn.co/mp3-preview/{id}', 'audiobook-onboarding-completed': '0', 'capping-bar-threshold': '3601', 'catalogue': 'premium', 'client-deprecated': '1', 'collection': '1', 'created_by_partner': None, 'employee-free-opt-in': '0', 'enable-annotations': '2', 'enable-annotations-read': '0', 'enable-crossfade': '1', 'explicit-content': '1', 'financial-product': 'pr:premium,tc:0,rt:v2_NZ_default_prepaid-premium-6-month-6m_77.94_NZD_default', 'head-file-caching': '1', 'head-files': '1', 'head-files-url': 'https://heads-fa-tls13.spotifycdn.com/head/{file_id}', 'high-bitrate': '1', 'image-url': 'https://i.scdn.co/image/{file_id}', 'incognito_mode_timeout': '21600', 'is_email_verified': '1', 'key-caching-max-count': '10000', 'key-caching-max-offline-seconds': '1800', 'key-memory-cache-mode': '1:15,300', 'libspotify': '1', 'license-agreements': None, 'loudness-levels': '1:-5.0,0.0,3.0:-2.0', 'metadata-link-lookup-modes': '0', 'mobile': '1', 'name': 'Spotify Premium', 'nft-disabled': '1', 'offline': '1', 'on-demand': '1', 'on-demand-trial-in-progress': '0', 'payment-state': None, 'payments-initial-campaign': 'prepaid', 'payments-locked-state': '0', 'player-license': 'premium', 'player-license-v2': 'premium', 'playlist-annotations-markup': '0', 'preferred-locale': 'en', 'prefetch-keys': '1', 'prefetch-strategy': '2', 'prefetch-window-max': '2', 'product-expiry': '2026-06-16T23:54:11Z', 'publish-activity': '0', 'publish-playlist': '1', 'radio': '1', 'remote-control': '6', 'restrict-playlist-collaboration': '0', 'send-email': '0', 'shows-collection': '1', 'shows-collection-jam': '0', 'shuffle': '0', 'sidebar-navigation-enabled': '0', 'storage-size-config': '10240,90,500,3', 'streaming': '1', 'streaming-rules': None, 'subscription-enddate': '2026-06-16T23:54:11Z', 'ugc-abuse-report': '1', 'ugc-abuse-report-url': 'https://support.spotify.com/abuse/?uri={uri}', 'unrestricted': '1', 'video-cdn-sampling': '100', 'video-device-blacklisted': '0', 'video-manifest-url': 'https://spclient.wg.spotify.com/manifests/v6/{type}/sources/{source_id}/options/supports_drm', 'widevine-license-url': 'https://spclient.wg.spotify.com/widevine-license/v1/video/license'}
INFO:Librespot:Session:Skipping 1f
INFO:Librespot:Session:Skipping 69
DEBUG:Librespot:MercuryClient:Handling packet, cmd: 0xb5, seq: 504414153381773312, flags: b'\x01', parts: 1
DEBUG:Librespot:MercuryClient:Couldn't dispatch Mercury event seq: 504414153381773312, uri: hm://pusher/v1/connections/Y2I4YjUzNTJmZWIzMTNmNWY3ODQzMWJmMTNlZTM1Yjc3ZjM2ZTM5NytBUCt0Y3A6Ly8wYWIxNThiOC5pcC5nYWUyLnNwb3RpZnkubmV0OjUwMTQrQjRFQUJDMDA0OTExNTk4Mjg2REZFMDRDRDk2NTkyQUJBNUQ3Nzc5NUMxMDk3MTg5QkNBOTBBQjQ5MDRCNTNCMQ%3D%3D, code: 200, payload: b''
DEBUG:Librespot:Session:Received 0x10: f233bdb39fc5bf14ff24e29500cb544aff4988ba
INFO:Librespot:Session:Skipping unknown command cmd: 0x75, payload: b'\x00\x00\x01'
DEBUG:urllib3.connectionpool:https://apresolve.spotify.com:443 "GET /?type=dealer HTTP/1.1" 200 None
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): login5.spotify.com:443
DEBUG:urllib3.connectionpool:https://login5.spotify.com:443 "POST /v3/login HTTP/1.1" 200 None
INFO:Librespot:TokenProvider:Login5 authentication successful, got access token
DEBUG:Librespot:TokenProvider:Using Login5 access token for scopes: ['playlist-read']
INFO:Librespot:Session:Authenticated as (user)!
DEBUG:zotify.debug:
Session Initialized Successfully
DEBUG:zotify.debug:
User Subscription Type: PREMIUM
DEBUG:zotify.debug:
Request Parsed as 1 URL
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): api.spotify.com:443
DEBUG:urllib3.connectionpool:https://api.spotify.com:443 "GET /v1/artists?market=from_token&ids=3V4IvzRQYP5mzuVtkcHgVa HTTP/1.1" 200 None
DEBUG:zotify.debug:
Total API Calls: 1
Config File
{
"DEBUG": "True",
"ROOT_PATH": "",
"SAVE_CREDENTIALS": "True",
"CREDENTIALS_LOCATION": "",
"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": "True",
"BULK_WAIT_TIME": "30",
"DOWNLOAD_REAL_TIME": "True",
"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": "mp3",
"DOWNLOAD_QUALITY": "auto",
"TRANSCODE_BITRATE": "auto",
"CUSTOM_FFMEPG_ARGS": "",
"SONG_ARCHIVE_LOCATION": "",
"DISABLE_SONG_ARCHIVE": "False",
"DISABLE_DIRECTORY_ARCHIVES": "False",
"SKIP_EXISTING": "True",
"SKIP_PREVIOUSLY_DOWNLOADED": "True",
"EXPORT_M3U8": "False",
"M3U8_LOCATION": "",
"M3U8_REL_PATHS": "True",
"LIKED_SONGS_ARCHIVE_M3U8": "True",
"LYRICS_TO_METADATA": "True",
"LYRICS_TO_FILE": "True",
"LYRICS_LOCATION": "",
"OUTPUT_LYRICS": "{artist}_{song_name}",
"ALWAYS_CHECK_LYRICS": "False",
"LYRICS_MD_HEADER": "False",
"BYPASS_MD_API": "False",
"LANGUAGE": "en",
"MD_DISC_TRACK_TOTALS": "True",
"MD_SAVE_GENRES": "False",
"MD_ALLGENRES": "False",
"MD_GENREDELIMITER": ",",
"MD_ARTISTDELIMITER": ", ",
"SEARCH_QUERY_SIZE": "10",
"STRICT_LIBRARY_VERIFY": "True",
"ALBUM_ART_JPG_FILE": "False",
"RETRY_ATTEMPTS": "1",
"CHUNK_SIZE": "20000",
"REDIRECT_ADDRESS": "127.0.0.1",
"PRINT_SPLASH": "False",
"PRINT_PROGRESS_INFO": "True",
"PRINT_SKIPS": "True",
"PRINT_DOWNLOADS": "False",
"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"
}
Additional Context
I have only tried this with artist links, so far track links seem to just take a while to parse before they get to downloading.
@Googolplexed0 commented on GitHub (Jan 21, 2026):
Should be fixed with
github.com/Googolplexed0/zotify@ee88dfca80