LaurenceRawlings / savify

Download Spotify songs to mp3 with full metadata and cover art!
MIT License
1.17k stars 80 forks source link

[BUG] List index out of range for cover art on specific playlists #20

Closed lucanello closed 3 years ago

lucanello commented 3 years ago

Describe the bug The script can't start the download for two specific, personal playlists.

To Reproduce Steps to reproduce the behavior [e.g. the command you ran]: savify "spotify-link" -o /download -g "%playlist%" -q best -f mp3

Expected behavior The download should continue and, if a single file can't be downloaded, skip this song.

Screenshots

Traceback (most recent call last):
  File "/usr/local/bin/savify", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/savify/cli.py", line 66, in main
    s.download(query, query_type=query_type)
  File "/usr/local/lib/python3.8/site-packages/savify/savify.py", line 91, in download
    queue = self._parse_query(query, query_type=query_type)
  File "/usr/local/lib/python3.8/site-packages/savify/savify.py", line 73, in _parse_query
    result = self.spotify.link(query)
  File "/usr/local/lib/python3.8/site-packages/savify/spotify.py", line 36, in link
    return self._get_playlist_tracks(query)
  File "/usr/local/lib/python3.8/site-packages/savify/spotify.py", line 52, in _get_playlist_tracks
    return _pack_playlist(playlist)
  File "/usr/local/lib/python3.8/site-packages/savify/spotify.py", line 72, in _pack_playlist
    tracks.append(Track(track_data))
  File "/usr/local/lib/python3.8/site-packages/savify/track.py", line 6, in __init__
    self._cover_art_url = spotify_data['album']['images'][0]['url']
IndexError: list index out of range

Desktop (please complete the following information):

LaurenceRawlings commented 3 years ago

Issue was when Spotify remove songs they stay in playlists but the data is deleted. This is now fixed :)