ShazamIO Versions Save

🎵 Is a free asynchronous library from reverse engineered Shazam API written in Python 3.8+ with asyncio and aiohttp.

0.6.0

2 weeks ago

Shazam has changed the contract for obtaining top songs:

Top tracks in country by genre Top tracks in country Top tracks in city Top tracks in world by genre Top tracks in world We managed to maintain this functionality, but the format of the responses has changed, as have the response models! Please make corrections, the data has changed significantly!!!

Added playlist and playlists methods for Serialize.

Minor fixes, corrected pydantic models, corrected song recognition test, because for some reason the song from dora.ogg disappeared from shazam (???).

⚠️ Fix: https://github.com/shazamio/ShazamIO/pull/105, thx @cc00010


Feature: https://github.com/shazamio/ShazamIO/pull/101 Feature: https://github.com/shazamio/ShazamIO/issues/99 Feature: fix pytest.

0.5.1

2 months ago

It looks like the current timeout time is not enough, our end up in max attempts + max timeout 30 seconds and after 429 error. A fix has been added to increase this max_timeout to 60 seconds.

And also if 60 seconds is not enough for you, you can override the wait timeout.

shazam = Shazam(
    http_client=HTTPClient(
        retry_options=ExponentialRetry(attempts=12, max_timeout=204.8, statuses={500, 502, 503, 504, 429}),
    ),
)

0.5.0

2 months ago
  • All complex logic for song recognition has been moved to RUST (shazamio_core) (used pyo3).

    • Wheel: windows [x86_64, amd64]
    • Wheel: macos [x86_64, aarch64]
    • Wheel: manylinux [x86_64, aarch64]
  • No more code blocking, true asynchronous code. See: https://github.com/shazamio/ShazamIO/issues/76#issuecomment-1961610344

  • recognize_song deprecated.

  • Added interface for custom HTTPClient.

  • Added the ability to use a proxy.

  • Added retry exponential.

  • Code refactoring.

  • The foundation has been laid to add logging to the project.

  • Added random device for recognize requests, previously there was only android.


A huge amount of time and effort was spent on assembling the kernel, since this was the first time I wrote CI to build pyo3 with manylinux. shazamio-core is temporarily not in the organization, because I have exhausted the limit of 2000 minutes, next month it will be added to the organization.

The core is compiled for [windows, macos, manylinux x64, manylinux aarch64] Tested:

windows macos manylinux There is no way to check: aarch64, but the wheels are built for it.

0.3.1.1

1 year ago

0.3.0.0

1 year ago

0.2.2.0

1 year ago

0.2.1.0

1 year ago