glomatico / votify

A Python CLI app for downloading songs/podcasts from Spotify.
MIT License
166 stars 11 forks source link

403 Seektable Error #22

Open Akczht opened 23 hours ago

Akczht commented 23 hours ago

I'm encountering a "seektable" error specifically when downloading AAC quality songs on both macOS and Windows platforms. While using the --config-path option resolves the issue on Windows, it unfortunately doesn't work on macOS. This inconsistency between platforms highlights a potential bug or limitation in the current implementation.

bash-3.2$ votify https://open.spotify.com/playlist/0dzPh9MYzz7E7YJ6BZHkvM?si=j__xatQFRCC7OuPvEGk3eA
[INFO     23:53:43] Starting Votify
[INFO     23:53:44] (URL 1/1) Checking "https://open.spotify.com/playlist/0dzPh9MYzz7E7YJ6BZHkvM?si=j__xatQFRCC7OuPvEGk3eA"
[INFO     23:53:45] (Track 1/18 from URL 1/1) Downloading "if..."
[ERROR    23:53:47] (Track 1/18 from URL 1/1) Failed to download "if..."
Traceback (most recent call last):
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/utils.py", line 8, in check_response
    response.raise_for_status()
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/requests/models.py", line 1024, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://seektables.scdn.co/seektable/a70ffd875f433c855589c3f3103daa10bf2ac965.json

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/cli.py", line 597, in main
    downloader_song.download(
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/downloader_song.py", line 137, in download
    self._download(*args, **kwargs)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/downloader_song.py", line 165, in _download
    stream_info = self.get_stream_info(gid_metadata, "track")
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/downloader_audio.py", line 86, in get_stream_info
    seek_table = self.downloader.spotify_api.get_seek_table(file_id)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/spotify_api.py", line 278, in get_seek_table
    check_response(response)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/utils.py", line 10, in check_response
    _raise_response_exception(response)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/utils.py", line 14, in _raise_response_exception
    raise Exception(
Exception: Request failed with status code 403: 
[INFO     23:53:52] (Track 2/18 from URL 1/1) Downloading "春よ、来い"
[INFO     23:54:02] (Track 3/18 from URL 1/1) Downloading "Pale Rain"                                                                                                                        
[INFO     23:54:11] (Track 4/18 from URL 1/1) Downloading "summertime"
[INFO     23:54:20] (Track 5/18 from URL 1/1) Downloading "ロビンソン"                                                                                                                       
[INFO     23:54:29] (Track 6/18 from URL 1/1) Downloading "美しい鰭"
[INFO     23:54:38] (Track 7/18 from URL 1/1) Downloading "strangers"
[INFO     23:54:47] (Track 8/18 from URL 1/1) Downloading "光るなら"                                                                                                                         
[INFO     23:54:55] (Track 9/18 from URL 1/1) Downloading "打上花火"
[INFO     23:55:04] (Track 10/18 from URL 1/1) Downloading "Prologue"                                                                                                                        
[INFO     23:55:13] (Track 11/18 from URL 1/1) Downloading "Skies Forever Blue"                                                                                                              
[INFO     23:55:23] (Track 12/18 from URL 1/1) Downloading "アイデア"                                                                                                                        
[INFO     23:55:33] (Track 13/18 from URL 1/1) Downloading "アイネクライネ"                                                                                                                  
[INFO     23:55:44] (Track 14/18 from URL 1/1) Downloading "Mayonaka no Door / Stay With Me"                                                                                                 
[INFO     23:55:53] (Track 15/18 from URL 1/1) Downloading "Plastic Love"
[INFO     23:56:03] (Track 16/18 from URL 1/1) Downloading "どんなときも。"                                                                                                                  
[ERROR    23:56:04] (Track 16/18 from URL 1/1) Failed to download "どんなときも。"
Traceback (most recent call last):
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/utils.py", line 8, in check_response
    response.raise_for_status()
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/requests/models.py", line 1024, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://seektables.scdn.co/seektable/720f41baa890a111f93a02f79ff36de0f0b13a8d.json

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/cli.py", line 597, in main
    downloader_song.download(
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/downloader_song.py", line 137, in download
    self._download(*args, **kwargs)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/downloader_song.py", line 165, in _download
    stream_info = self.get_stream_info(gid_metadata, "track")
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/downloader_audio.py", line 86, in get_stream_info
    seek_table = self.downloader.spotify_api.get_seek_table(file_id)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/spotify_api.py", line 278, in get_seek_table
    check_response(response)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/utils.py", line 10, in check_response
    _raise_response_exception(response)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/utils.py", line 14, in _raise_response_exception
    raise Exception(
Exception: Request failed with status code 403: 
[INFO     23:56:09] (Track 17/18 from URL 1/1) Downloading "どんなときも。 - バラード・ヴァージョン"
[ERROR    23:56:11] (Track 17/18 from URL 1/1) Failed to download "どんなときも。 - バラード・ヴァージョン"
Traceback (most recent call last):
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/utils.py", line 8, in check_response
    response.raise_for_status()
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/requests/models.py", line 1024, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://seektables.scdn.co/seektable/18a8bb0d007246d2b123713bb39af7513cb485c3.json

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/cli.py", line 597, in main
    downloader_song.download(
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/downloader_song.py", line 137, in download
    self._download(*args, **kwargs)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/downloader_song.py", line 165, in _download
    stream_info = self.get_stream_info(gid_metadata, "track")
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/downloader_audio.py", line 86, in get_stream_info
    seek_table = self.downloader.spotify_api.get_seek_table(file_id)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/spotify_api.py", line 278, in get_seek_table
    check_response(response)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/utils.py", line 10, in check_response
    _raise_response_exception(response)
  File "/Users/akshat/Library/Python/3.9/lib/python/site-packages/votify/utils.py", line 14, in _raise_response_exception
    raise Exception(
Exception: Request failed with status code 403: 
[INFO     23:56:16] (Track 18/18 from URL 1/1) Downloading "Young Girl A"
[INFO     23:56:21] Done (3 error(s)).6MiB ETA:1s]

Here's my config

{
    "wait_interval": 5,
    "enable_videos": false,
    "download_music_videos": false,
    "download_podcast_videos": false,
    "force_premium": false,
    "log_level": "INFO",
    "no_exceptions": false,
    "cookies_path": "/Users/akshat/.votify/cookies.txt",
    "output_path": "/Users/akshat/Music/Spotify",
    "temp_path": "temp",
    "wvd_path": "/Users/akshat/.votify/device.wvd",
    "aria2c_path": "aria2c",
    "ffmpeg_path": "ffmpeg",
    "mp4box_path": "mp4box",
    "mp4decrypt_path": "mp4decrypt",
    "packager_path": "packager",
    "template_folder_album": "{playlist_title}",
    "template_folder_compilation": "{playlist_title}",
    "template_file_single_disc": "{isrc}",
    "template_file_multi_disc": "{isrc}",
    "template_folder_episode": "Podcasts/{album}",
    "template_file_episode": "{track:02d} {title}",
    "template_folder_music_video": "{artist}/Unknown Album",
    "template_file_music_video": "{title}",
    "template_file_playlist": "Playlists/{playlist_title}",
    "date_tag_template": "%Y-%m-%dT%H:%M:%SZ",
    "save_cover": false,
    "save_playlist": false,
    "overwrite": false,
    "exclude_tags": null,
    "truncate": null,
    "audio_quality": "aac-medium",
    "download_mode": "aria2c",
    "remux_mode_audio": "mp4decrypt",
    "lrc_only": false,
    "no_lrc": true,
    "video_format": "mp4",
    "remux_mode_video": "ffmpeg"
}

macOS 15.1 Python 3.9.6 Votify 1.4.5