Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't download "mixes" that are generated by Spotify #2292

Open
JCLemme opened this issue Feb 1, 2025 · 1 comment
Open

Can't download "mixes" that are generated by Spotify #2292

JCLemme opened this issue Feb 1, 2025 · 1 comment
Labels
Bug Unexpected problem or unintended behavior that needs to be fixed

Comments

@JCLemme
Copy link

JCLemme commented Feb 1, 2025

System OS

MacOS

Python Version

3.13 (CPython)

Install Source

pip / PyPi

Install version / commit hash

v4.2.11

Expected Behavior vs Actual Behavior

No response

Steps to reproduce - Ensure to include actual links!

  1. Run spotdl https://open.spotify.com/playlist/37i9dQZF1EIf0f4Xz0vVZi?si=7wu8FDmiSseCHAa7v9akbg, which points to an algorithmic mix ("Japanese Jazz")
  2. Observe that it explodes

Traceback

$ spotdl https://open.spotify.com/playlist/37i9dQZF1EIf0f4Xz0vVZi\?si\=kE_VhRWgSdqdokBxMXG5Kg                 
Processing query: https://open.spotify.com/playlist/37i9dQZF1EIf0f4Xz0vVZi?si=kE_VhRWgSdqdokBxMXG5Kg
WARNING:root:Your application has reached a rate/request limit. Retry will occur after: None
WARNING:root:Your application has reached a rate/request limit. Retry will occur after: None
WARNING:root:Your application has reached a rate/request limit. Retry will occur after: None
WARNING:root:Your application has reached a rate/request limit. Retry will occur after: None
ERROR:spotipy.client:Max Retries reached

An error occurred
ResponseError: too many 404 error responses

The above exception was the direct cause of the following exception:

╭───────────────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────────────╮
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/requests/adapters.py:667 in send                                                                       │
│                                                                                                                                                                             │
│   664 │   │   │   timeout = TimeoutSauce(connect=timeout, read=timeout)                                                                                                     │
│   665 │   │                                                                                                                                                                 │
│   666 │   │   try:                                                                                                                                                          │
│ ❱ 667 │   │   │   resp = conn.urlopen(                                                                                                                                      │
│   668 │   │   │   │   method=request.method,                                                                                                                                │
│   669 │   │   │   │   url=url,                                                                                                                                              │
│   670 │   │   │   │   body=request.body,                                                                                                                                    │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/urllib3/connectionpool.py:942 in urlopen                                                               │
│                                                                                                                                                                             │
│    939 │   │   │   response.drain_conn()                                                                                                                                    │
│    940 │   │   │   retries.sleep(response)                                                                                                                                  │
│    941 │   │   │   log.debug("Retry: %s", url)                                                                                                                              │
│ ❱  942 │   │   │   return self.urlopen(                                                                                                                                     │
│    943 │   │   │   │   method,                                                                                                                                              │
│    944 │   │   │   │   url,                                                                                                                                                 │
│    945 │   │   │   │   body,                                                                                                                                                │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/urllib3/connectionpool.py:942 in urlopen                                                               │
│                                                                                                                                                                             │
│    939 │   │   │   response.drain_conn()                                                                                                                                    │
│    940 │   │   │   retries.sleep(response)                                                                                                                                  │
│    941 │   │   │   log.debug("Retry: %s", url)                                                                                                                              │
│ ❱  942 │   │   │   return self.urlopen(                                                                                                                                     │
│    943 │   │   │   │   method,                                                                                                                                              │
│    944 │   │   │   │   url,                                                                                                                                                 │
│    945 │   │   │   │   body,                                                                                                                                                │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/urllib3/connectionpool.py:942 in urlopen                                                               │
│                                                                                                                                                                             │
│    939 │   │   │   response.drain_conn()                                                                                                                                    │
│    940 │   │   │   retries.sleep(response)                                                                                                                                  │
│    941 │   │   │   log.debug("Retry: %s", url)                                                                                                                              │
│ ❱  942 │   │   │   return self.urlopen(                                                                                                                                     │
│    943 │   │   │   │   method,                                                                                                                                              │
│    944 │   │   │   │   url,                                                                                                                                                 │
│    945 │   │   │   │   body,                                                                                                                                                │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/urllib3/connectionpool.py:932 in urlopen                                                               │
│                                                                                                                                                                             │
│    929 │   │   has_retry_after = bool(response.headers.get("Retry-After"))                                                                                                  │
│    930 │   │   if retries.is_retry(method, response.status, has_retry_after):                                                                                               │
│    931 │   │   │   try:                                                                                                                                                     │
│ ❱  932 │   │   │   │   retries = retries.increment(method, url, response=response, _pool=self)                                                                              │
│    933 │   │   │   except MaxRetryError:                                                                                                                                    │
│    934 │   │   │   │   if retries.raise_on_status:                                                                                                                          │
│    935 │   │   │   │   │   response.drain_conn()                                                                                                                            │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotipy/util.py:170 in increment                                                                       │
│                                                                                                                                                                             │
│   167 │   │   │   if self.is_retry(method, response.status, bool(retry_header)):                                                                                            │
│   168 │   │   │   │   logging.warning("Your application has reached a rate/request limit. "                                                                                 │
│   169 │   │   │   │   │   │   │   │   f"Retry will occur after: {retry_header}")                                                                                            │
│ ❱ 170 │   │   return super().increment(method,                                                                                                                              │
│   171 │   │   │   │   │   │   │   │    url,                                                                                                                                 │
│   172 │   │   │   │   │   │   │   │    response=response,                                                                                                                   │
│   173 │   │   │   │   │   │   │   │    error=error,                                                                                                                         │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/urllib3/util/retry.py:519 in increment                                                                 │
│                                                                                                                                                                             │
│   516 │   │                                                                                                                                                                 │
│   517 │   │   if new_retry.is_exhausted():                                                                                                                                  │
│   518 │   │   │   reason = error or ResponseError(cause)                                                                                                                    │
│ ❱ 519 │   │   │   raise MaxRetryError(_pool, url, reason) from reason  # type:                                                                                              │
│       ignore[arg-type]                                                                                                                                                      │
│   520 │   │                                                                                                                                                                 │
│   521 │   │   log.debug("Incremented Retry for (url='%s'): %r", url, new_retry)                                                                                             │
│   522                                                                                                                                                                       │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
MaxRetryError: HTTPSConnectionPool(host='api.spotify.com', port=443): Max retries exceeded with url: /v1/playlists/37i9dQZF1EIf0f4Xz0vVZi?additional_types=track (Caused by
ResponseError('too many 404 error responses'))

During handling of the above exception, another exception occurred:

╭───────────────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────────────╮
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotipy/client.py:270 in _internal_call                                                                │
│                                                                                                                                                                             │
│    267 │   │   │   │   │    method, url, args.get("params"), headers, args.get('data'))                                                                                     │
│    268 │   │                                                                                                                                                                │
│    269 │   │   try:                                                                                                                                                         │
│ ❱  270 │   │   │   response = self._session.request(                                                                                                                        │
│    271 │   │   │   │   method, url, headers=headers, proxies=self.proxies,                                                                                                  │
│    272 │   │   │   │   timeout=self.requests_timeout, **args                                                                                                                │
│    273 │   │   │   )                                                                                                                                                        │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/requests/sessions.py:589 in request                                                                    │
│                                                                                                                                                                             │
│   586 │   │   │   "allow_redirects": allow_redirects,                                                                                                                       │
│   587 │   │   }                                                                                                                                                             │
│   588 │   │   send_kwargs.update(settings)                                                                                                                                  │
│ ❱ 589 │   │   resp = self.send(prep, **send_kwargs)                                                                                                                         │
│   590 │   │                                                                                                                                                                 │
│   591 │   │   return resp                                                                                                                                                   │
│   592                                                                                                                                                                       │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/requests/sessions.py:703 in send                                                                       │
│                                                                                                                                                                             │
│   700 │   │   start = preferred_clock()                                                                                                                                     │
│   701 │   │                                                                                                                                                                 │
│   702 │   │   # Send the request                                                                                                                                            │
│ ❱ 703 │   │   r = adapter.send(request, **kwargs)                                                                                                                           │
│   704 │   │                                                                                                                                                                 │
│   705 │   │   # Total elapsed time of the request (approximately)                                                                                                           │
│   706 │   │   elapsed = preferred_clock() - start                                                                                                                           │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/requests/adapters.py:691 in send                                                                       │
│                                                                                                                                                                             │
│   688 │   │   │   │   │   raise ConnectTimeout(e, request=request)                                                                                                          │
│   689 │   │   │                                                                                                                                                             │
│   690 │   │   │   if isinstance(e.reason, ResponseError):                                                                                                                   │
│ ❱ 691 │   │   │   │   raise RetryError(e, request=request)                                                                                                                  │
│   692 │   │   │                                                                                                                                                             │
│   693 │   │   │   if isinstance(e.reason, _ProxyError):                                                                                                                     │
│   694 │   │   │   │   raise ProxyError(e, request=request)                                                                                                                  │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
RetryError: HTTPSConnectionPool(host='api.spotify.com', port=443): Max retries exceeded with url: /v1/playlists/37i9dQZF1EIf0f4Xz0vVZi?additional_types=track (Caused by
ResponseError('too many 404 error responses'))

During handling of the above exception, another exception occurred:

╭───────────────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────────────╮
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/console/entry_point.py:160 in entry_point                                                       │
│                                                                                                                                                                             │
│   157 │   try:                                                                                                                                                              │
│   158 │   │   # Pick the operation to perform                                                                                                                               │
│   159 │   │   # based on the name and run it!                                                                                                                               │
│ ❱ 160 │   │   OPERATIONS[arguments.operation](                                                                                                                              │
│   161 │   │   │   query=arguments.query,                                                                                                                                    │
│   162 │   │   │   downloader=downloader,                                                                                                                                    │
│   163 │   │   )                                                                                                                                                             │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/console/download.py:25 in download                                                              │
│                                                                                                                                                                             │
│   22 │   """                                                                                                                                                                │
│   23 │                                                                                                                                                                      │
│   24 │   # Parse the query                                                                                                                                                  │
│ ❱ 25 │   songs = get_simple_songs(                                                                                                                                          │
│   26 │   │   query,                                                                                                                                                         │
│   27 │   │   use_ytm_data=downloader.settings["ytm_data"],                                                                                                                  │
│   28 │   │   playlist_numbering=downloader.settings["playlist_numbering"],                                                                                                  │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/utils/search.py:264 in get_simple_songs                                                         │
│                                                                                                                                                                             │
│   261 │   │   │   )                                                                                                                                                         │
│   262 │   │   │   songs.extend(full_lists)                                                                                                                                  │
│   263 │   │   elif "open.spotify.com" in request and "playlist" in request:                                                                                                 │
│ ❱ 264 │   │   │   lists.append(Playlist.from_url(request, fetch_songs=False))                                                                                               │
│   265 │   │   elif "open.spotify.com" in request and "album" in request:                                                                                                    │
│   266 │   │   │   lists.append(Album.from_url(request, fetch_songs=False))                                                                                                  │
│   267 │   │   elif "open.spotify.com" in request and "artist" in request:                                                                                                   │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/types/song.py:306 in from_url                                                                   │
│                                                                                                                                                                             │
│   303 │   │   - The SongList object.                                                                                                                                        │
│   304 │   │   """                                                                                                                                                           │
│   305 │   │                                                                                                                                                                 │
│ ❱ 306 │   │   metadata, songs = cls.get_metadata(url)                                                                                                                       │
│   307 │   │   urls = [song.url for song in songs]                                                                                                                           │
│   308 │   │                                                                                                                                                                 │
│   309 │   │   if fetch_songs:                                                                                                                                               │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/types/playlist.py:48 in get_metadata                                                            │
│                                                                                                                                                                             │
│    45 │   │                                                                                                                                                                 │
│    46 │   │   spotify_client = SpotifyClient()                                                                                                                              │
│    47 │   │                                                                                                                                                                 │
│ ❱  48 │   │   playlist = spotify_client.playlist(url)                                                                                                                       │
│    49 │   │   if playlist is None:                                                                                                                                          │
│    50 │   │   │   raise PlaylistError("Invalid playlist URL.")                                                                                                              │
│    51                                                                                                                                                                       │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotipy/client.py:671 in playlist                                                                      │
│                                                                                                                                                                             │
│    668 │   │   │   │   │   │   │   │   │    valid types are: track and episode                                                                                              │
│    669 │   │   """                                                                                                                                                          │
│    670 │   │   plid = self._get_id("playlist", playlist_id)                                                                                                                 │
│ ❱  671 │   │   return self._get(                                                                                                                                            │
│    672 │   │   │   f"playlists/{plid}",                                                                                                                                     │
│    673 │   │   │   fields=fields,                                                                                                                                           │
│    674 │   │   │   market=market,                                                                                                                                           │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/utils/spotify.py:195 in _get                                                                    │
│                                                                                                                                                                             │
│   192 │   │   retries = self.max_retries  # type: ignore # pylint: disable=E1101                                                                                            │
│   193 │   │   while response is None:                                                                                                                                       │
│   194 │   │   │   try:                                                                                                                                                      │
│ ❱ 195 │   │   │   │   response = self._internal_call("GET", url, payload, kwargs)                                                                                           │
│   196 │   │   │   except (requests.exceptions.Timeout, requests.ConnectionError) as exc:                                                                                    │
│   197 │   │   │   │   retries -= 1                                                                                                                                          │
│   198 │   │   │   │   if retries <= 0:                                                                                                                                      │
│                                                                                                                                                                             │
│ /Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotipy/client.py:311 in _internal_call                                                                │
│                                                                                                                                                                             │
│    308 │   │   │   │   reason = retry_error.args[0].reason                                                                                                                  │
│    309 │   │   │   except (IndexError, AttributeError):                                                                                                                     │
│    310 │   │   │   │   reason = None                                                                                                                                        │
│ ❱  311 │   │   │   raise SpotifyException(                                                                                                                                  │
│    312 │   │   │   │   429,                                                                                                                                                 │
│    313 │   │   │   │   -1,                                                                                                                                                  │
│    314 │   │   │   │   f"{request.path_url}:\n Max Retries",                                                                                                                │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
SpotifyException: http status: 429, code:-1 - /v1/playlists/37i9dQZF1EIf0f4Xz0vVZi?additional_types=track:
 Max Retries, reason: too many 404 error responses
ERROR:spotdl.console.entry_point:An error occurred
urllib3.exceptions.ResponseError: too many 404 error responses

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/requests/adapters.py", line 667, in send
    resp = conn.urlopen(
        method=request.method,
    ...<9 lines>...
        chunked=chunked,
    )
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/urllib3/connectionpool.py", line 942, in urlopen
    return self.urlopen(
           ~~~~~~~~~~~~^
        method,
        ^^^^^^^
    ...<13 lines>...
        **response_kw,
        ^^^^^^^^^^^^^^
    )
    ^
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/urllib3/connectionpool.py", line 942, in urlopen
    return self.urlopen(
           ~~~~~~~~~~~~^
        method,
        ^^^^^^^
    ...<13 lines>...
        **response_kw,
        ^^^^^^^^^^^^^^
    )
    ^
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/urllib3/connectionpool.py", line 942, in urlopen
    return self.urlopen(
           ~~~~~~~~~~~~^
        method,
        ^^^^^^^
    ...<13 lines>...
        **response_kw,
        ^^^^^^^^^^^^^^
    )
    ^
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/urllib3/connectionpool.py", line 932, in urlopen
    retries = retries.increment(method, url, response=response, _pool=self)
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotipy/util.py", line 170, in increment
    return super().increment(method,
           ~~~~~~~~~~~~~~~~~^^^^^^^^
                             url,
                             ^^^^
    ...<2 lines>...
                             _pool=_pool,
                             ^^^^^^^^^^^^
                             _stacktrace=_stacktrace)
                             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/urllib3/util/retry.py", line 519, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.spotify.com', port=443): Max retries exceeded with url:
/v1/playlists/37i9dQZF1EIf0f4Xz0vVZi?additional_types=track (Caused by ResponseError('too many 404 error responses'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotipy/client.py", line 270, in _internal_call
    response = self._session.request(
        method, url, headers=headers, proxies=self.proxies,
        timeout=self.requests_timeout, **args
    )
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/requests/adapters.py", line 691, in send
    raise RetryError(e, request=request)
requests.exceptions.RetryError: HTTPSConnectionPool(host='api.spotify.com', port=443): Max retries exceeded with url:
/v1/playlists/37i9dQZF1EIf0f4Xz0vVZi?additional_types=track (Caused by ResponseError('too many 404 error responses'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/console/entry_point.py", line 160, in entry_point
    OPERATIONS[arguments.operation](
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        query=arguments.query,
        ^^^^^^^^^^^^^^^^^^^^^^
        downloader=downloader,
        ^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/console/download.py", line 25, in download
    songs = get_simple_songs(
        query,
    ...<4 lines>...
        playlist_retain_track_cover=downloader.settings["playlist_retain_track_cover"],
    )
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/utils/search.py", line 264, in get_simple_songs
    lists.append(Playlist.from_url(request, fetch_songs=False))
                 ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/types/song.py", line 306, in from_url
    metadata, songs = cls.get_metadata(url)
                      ~~~~~~~~~~~~~~~~^^^^^
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/types/playlist.py", line 48, in get_metadata
    playlist = spotify_client.playlist(url)
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotipy/client.py", line 671, in playlist
    return self._get(
           ~~~~~~~~~^
        f"playlists/{plid}",
        ^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        additional_types=",".join(additional_types),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotdl/utils/spotify.py", line 195, in _get
    response = self._internal_call("GET", url, payload, kwargs)
  File "/Users/jclemme/.local/pipx/venvs/spotdl/lib/python3.13/site-packages/spotipy/client.py", line 311, in _internal_call
    raise SpotifyException(
    ...<4 lines>...
    )
spotipy.exceptions.SpotifyException: http status: 429, code:-1 - /v1/playlists/37i9dQZF1EIf0f4Xz0vVZi?additional_types=track:
 Max Retries, reason: too many 404 error responses

Other details

The API changes that Spotify made in November block you from accessing your mixes, like "On Repeat", even if you're logged in. The change was only for new API keys, so interestingly this still works with the spotdl default keys - if you try to use your own app credentials it will fail.

I don't think there is anything that can fix it - maybe falling back to the default keys? Just wanted a public warning up for the next person that runs into this. Couldn't think of a better place.

@JCLemme JCLemme added the Bug Unexpected problem or unintended behavior that needs to be fixed label Feb 1, 2025
@Silverarmor
Copy link
Member

Reported at #2254. I'm going to keep them both open as we should work towards filtering them out somehow... There's a lot on the todo list at the moment and not a lot of time (or volunteers).

Interesting point around the new API keys. Thanks for reporting!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Unexpected problem or unintended behavior that needs to be fixed
Projects
None yet
Development

No branches or pull requests

2 participants